7

我正在开发的应用程序包含许多简短(1-2 秒)的视频。

视频显示在一个活动中。用户可以重播视频(可能在播放视频时)或更改实际视频。

部分代码更改视频:

String videoPath = getVideoPath();
videoView.setVideoPath(videoPath);
videoView.start();

这 3 行已经导致应用程序加载新视频并播放它。

视频完成后问题开始。从这一点开始加载新视频会导致很多问题(比如有时半部电影只播放声音,而屏幕是黑屏)。回放视频也有类似的问题(我最终从上面调用了 3 个通道)。

完成电影后似乎android释放资源或类似的东西(这就是为什么我设置相同的路径,当我想重播视频时)。

理想情况下,我希望视频在完成播放后简单地暂停并寻找电影开始(但我不能在 OnCompletedListener 中执行此操作,因为它已经将状态更改为停止......)。

我能以某种方式实现这一目标吗?(我的意思是->在完成视频暂停并开始搜索之后)

我已经尝试了暂停视频、暂停视频、设置 OnPreparedListener、设置 OnCompletedListener 的所有组合。

谢谢!

4

4 回答 4

10

尝试类似的东西

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer arg0) {
         mVideoView.start();

    }
});


mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
            mp.reset();
            mVideoView.setVideoPath(file.getAbsolutePath());
            mVideoView.start();
    }
});
于 2012-12-20T15:50:33.113 回答
2

停止播放,更改视频路径,开始视频

videoView.stopPlayback();
videoView.setVideoPath(newVideoPath);
videoView.start();
于 2015-02-08T15:05:51.373 回答
0

我通过以下方式重构了我的代码:每次我需要新视频时,我都会重新加载整个活动。它在大多数情况下都有效,但现在我有时会收到“无法打开媒体文件”错误,而不是在开始播放时出现视频黑屏。

它与android资源管理有关吗?我在 onCompletionListener 中释放 mediaPlayer。

有没有人在从外部存储播放许多视频时遇到这样的问题?

于 2012-12-21T09:21:14.107 回答
0

你可以这样做:

videoView.setOnCompletionListener(MediaPlayer.OnCompletionListener { mp ->
            mp.seekTo(0);//go to second 0
            mp.start()// start again
        })

我在这个链接中发现: https ://developer.android.com/reference/android/media/MediaPlayer

于 2020-04-14T14:04:00.240 回答