Android 活动恢复并重新启动时的VideoView停止显示
我正在使用VideoView显示rtsp流式视频。下面您可以找到一段代码Android 活动恢复并重新启动时的VideoView停止显示,android,video-streaming,Android,Video Streaming,我正在使用VideoView显示rtsp流式视频。下面您可以找到一段代码 OnCreate() { ... // Setup video view videoView = (VideoView) findViewById(R.id.videoViewStream); videoView.setMediaController(new MediaController(this)); .... // Create a button } OnButton
OnCreate() {
...
// Setup video view
videoView = (VideoView) findViewById(R.id.videoViewStream);
videoView.setMediaController(new MediaController(this));
....
// Create a button
}
OnButtonClickListener() {
videoView.setVideoURI(Uri.parse(videoUri));
videoView.requestFocus();
}
我没有关于OnResume和OnPause函数中视频视图的代码
该问题的用例是:
TA我建议您保存当前视频位置(以及重新启动时所需的所有内容),并在onPause中停止播放。在onDestroy中,您需要释放mediaPlayer。如果用户返回,您将获得onResume或onCreate。在onCreate中,您将像第一次一样再次初始化播放器。在onResume中,您将创建一个安全检查,以确定播放机是否真的启动,以及是否一切正常,开始播放(或等待单击事件)。同时检查上次保存的位置,以查找可能的搜索 我会将OnButtonClickListener中的代码提取到单独的方法中,并从clickListener或onResume中调用该方法(如果您希望自动开始播放) 最新答复: 我犯了一个释放错误。它是由VideoView在
stopPlayback
方法中完成的(查看grepcode上的VideoView源代码)。
我不知道您的RTSP流媒体服务器是如何工作的,但我使用的流媒体服务器不支持使用VideoView的seekTo
方法进行搜索。您可以在onPause
中调用pause
,在onResume
中调用start
,但这将从0开始流(在我的情况下)。因此,我必须创建自定义seekbar。但那是另一个故事
在我的实现中,我在onPause
中调用pause
,在ondestory
中调用stopPlayback
。在onPause
中,我还存储最后一个位置。在onCreate
中,我只能查看和设置媒体控件。在onResume
中,我检查是否有关于上一个职位的任何信息。如果存在,则我使用该参数(seek)准备播放器(setVideoPath
,requestFocus
,start
),否则不使用(seek=0)
这就是我的解决方案:)我会接受你的建议并尝试编程。你认为我应该使用MediaPlayer而不是VideoView类吗?您有MediaPlayer的示例代码吗?你说onDestroy我必须释放mediaplayer,或者你只是想将其设置为null?Gallery电影播放器的代码是如何实现保存当前视频位置和恢复的一个很好的示例: