我希望能够添加一个我创建的视频,当它在屏幕上显示时自动开始播放,到目前为止我的代码看起来像这样:
VideoView videoview = (VideoView) findViewById(R.id.button10);
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.group_project);
videoview.setVideoURI(uri);
videoview.start();
当我点击并进入该屏幕时,当前没有任何反应。当我使用媒体播放器时播放声音,但我真的想添加此视频。任何帮助将不胜感激。
答案 0 :(得分:6)
使用setOnPreparedListener()
方法非常重要,请确保在group_project.mp4
文件夹中有一个名为/raw
的视频。
final VideoView videoview = (VideoView) findViewById(R.id.button10);
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.group_project);
videoview.setVideoURI(uri);
videoview.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
videoview.start();
}
});
阅读文档:
MediaPlayer对象必须先进入Prepared状态 可以开始播放。有两种方式(同步vs. 异步)可以达到准备状态:要么调用 prepare()(同步)将对象传输到Prepared 一旦方法调用返回,或调用prepareAsync() (异步)首先将对象传输到Preparation状态 在呼叫返回后(几乎正确地发生)同时 内部播放器引擎继续处理其余的准备工作 工作直到准备工作完成。什么时候准备 完成或当prepare()调用返回时,内部播放器引擎 然后调用用户提供的回调方法onPrepared() OnPreparedListener接口,如果注册了OnPreparedListener 预先通过 setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)。
答案 1 :(得分:0)
VideoView videoview = (VideoView) findViewById(R.id.button10);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.group_project);
videoView.setMediaController(mediaController);
videoView.setVideoURI(uri);
videoview.start();
答案 2 :(得分:0)
在执行videoview.start()之前尝试此操作以确保准备就绪。
videoview.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
videoview.start();
}
});