Otu*_*uyh 6 android android-videoview
我正在测试这个大约三天不间断.
这是简单的代码:
private VideoView videoView;
Run Code Online (Sandbox Code Playgroud)
-
videoView = (VideoView) findViewById(R.id.videoView);
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
getNewVideo();
}
}
});
getNewVideo();
Run Code Online (Sandbox Code Playgroud)
-
private void getNewVideo(){
File file = //Any File. I have a list of files and they are executed in order
videoView.stopPlayback();
videoView.setVideoPath(file.getPath());
videoView.start();
}
Run Code Online (Sandbox Code Playgroud)
-
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
Run Code Online (Sandbox Code Playgroud)
我需要24/7执行此代码.
问题是,与持续时间无关(在开始运行或运行20分钟后),有时候,视频就会冻结.没有日志,没有例外,我唯一知道的是在冻结之前运行的最后一件事就是onPrepared().
日志与所有调用视频的尝试相同,唯一的区别是最后一次尝试(冻结的那个),只是在准备好执行后停止.
任何提示表示赞赏.
我使用的内部版本号是RKM MK902_ANDROID5.1.1-20151016.1805
使用RKM MK902II Android PC设备,在电视屏幕42'中运行
我没有太多玩本地视频文件的经验(我假设这是因为你的代码说你有"按顺序执行的文件列表"),但.....
根据我的经验videoView.start(),在VideoView正确初始化媒体之前,您不应该打电话.
当您调用videoView.setVideoPath("path")VideoView时,将执行一些初始化过程来加载Media.VideoView加载/初始化媒体后,它将调用其onPreparedListener回调(如果你设置了一个).只有当VideoView调用此回调时,才应调用VideoView.start()以开始视频播放.
所以...当你在VideoView上设置onCompletionListener时......你还应该设置一个onPreparedListener.当VideoView向您的班级报告它已准备好....呼叫VideoView.start()开始播放.
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
videoView.start();
}
}
});
Run Code Online (Sandbox Code Playgroud)
此外,在我的代码中,我VideoView.suspend()在重新使用VideoView播放后续视频之前拨打电话.尝试VideoView.suspend()在getNewVideo()方法的开头添加一个调用.
| 归档时间: |
|
| 查看次数: |
848 次 |
| 最近记录: |