Android - 在videoView中更改/重播视频

时间:2012-12-20 15:11:54

标签: android video media-player android-videoview

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

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

改变视频的部分代码:

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

这三行已导致应用加载新视频并播放。

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

在完成电影发布资源或类似的事情之后,似乎是android(这就是为什么我设置相同的路径,当我想重播视频时)。

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

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

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

THX!

4 个答案:

答案 0 :(得分:7)

尝试类似

的内容
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();
    }
});

答案 1 :(得分:1)

停止播放,更改视频路径,启动视频

videoView.stopPlayback();
videoView.setVideoPath(newVideoPath);
videoView.start();

答案 2 :(得分:0)

我以下列方式重构了我的代码:每当我需要新视频时,我会重新加载整个活动。它大部分时间都有效,但现在在播放开始时我没有视频黑度,有时会出现“无法打开媒体文件”的错误。

它与android资源管理有关吗?我在onCompletionListener中发布了mediaPlayer。

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

答案 3 :(得分: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