изменить вид видео с FireBase - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть приложение, которое воспроизводит видео и видео. Это приложение имеет дочерний слушатель событий на базе данных Firebase. Я хочу изменить видео в моем видеовиде при изменении параметра в моей БД (из другого приложения). код все еще работает, но я не могу прослушать изменение параметра. вот код

public class activity_main extends AppCompatActivity {

    private DatabaseReference mDatabase;
    VideoView videoview;
    TextView tV;
    String path;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDatabase = FirebaseDatabase.getInstance().getReference();
        mDatabase.child("parametri").child("nowPlaying").setValue("video01");

        videoview = (VideoView) findViewById(R.id.videoView);
        tV = (TextView) findViewById(R.id.textView);

        path = "android.resource://" + getPackageName() + "/" + R.raw.video01;
        videoview.setVideoURI(Uri.parse(path));
        videoview.start();

        mDatabase.child("parametri").child("nowPlaying").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                String value = dataSnapshot.getValue(String.class);
                tV.setText(value);
                Log.e("Valore attuale: " , value);

                switch (value) {
                    case "video01" :
                        tV.setText("Video01");
                        path = "android.resource://" + getPackageName() + "/" + R.raw.video01;
                        videoview.stopPlayback();
                        videoview.setVideoURI(Uri.parse(path));
                        videoview.start();
                        break;
                    case "video02" :
                        tV.setText("Video02");
                        path = "android.resource://" + getPackageName() + "/" + R.raw.video02;
                        videoview.stopPlayback();
                        videoview.setVideoURI(Uri.parse(path));
                        videoview.start();
                        break;
                }
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });

вот мой дб enter image description here

Вот мой класс для параметра:

public class parametri {

    public String nowPlaying;

    public parametri () {

    }

    public parametri(String nowPlaying) {
        this.nowPlaying = nowPlaying;
    }

    public String getNowPlaying() {
        return nowPlaying;
    }

    public void setNowPlaying(String nowPlaying) {
        this.nowPlaying = nowPlaying;
    }
}

Каждая часть моего приложения работает, но я не могу изменить видео в видеовиде. В чем проблема?

1 Ответ

0 голосов
/ 30 апреля 2018

Не используйте addListenerForSingleValueEvent, вместо этого используйте addValueEventListener.

Какую разницу вы можете найти здесь: https://firebase.google.com/docs/database/android/read-and-write

...