使用 firebase 更改视频视图
change video view whit firebase
我有一个可以播放 videoview 视频的应用程序。此应用程序在 Firebase 数据库上有一个子事件侦听器。当我更改数据库(来自另一个应用程序)上的参数时,我想更改 videoview 中的视频。
代码仍然有效,但我听不到参数的变化。
这是代码
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) {
}
});
这是我的数据库
这是我的 class 参数:
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;
}
}
我的应用程序的每个部分都可以工作,但我无法更改 videoview 中的视频。有什么问题吗?
不要使用 addListenerForSingleValueEvent,而是使用 addValueEventListener。
你可以在这里找到不同之处:https://firebase.google.com/docs/database/android/read-and-write
我有一个可以播放 videoview 视频的应用程序。此应用程序在 Firebase 数据库上有一个子事件侦听器。当我更改数据库(来自另一个应用程序)上的参数时,我想更改 videoview 中的视频。 代码仍然有效,但我听不到参数的变化。 这是代码
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) {
}
});
这是我的数据库
这是我的 class 参数:
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;
}
}
我的应用程序的每个部分都可以工作,但我无法更改 videoview 中的视频。有什么问题吗?
不要使用 addListenerForSingleValueEvent,而是使用 addValueEventListener。
你可以在这里找到不同之处:https://firebase.google.com/docs/database/android/read-and-write