0

我是 android 初学者,所以请放轻松;-)

我正在尝试播放从服务器下载的一系列视频文件。挑战在于我希望从一个文件平稳过渡到另一个文件。

我的想法是让两个 MediaPlayer 实例分别准备然后依次播放。我不清楚他们是否可以共享同一个 SurfaceView?或者,我应该使用不同的视图并在它们之间交换?或者,这个想法是一个坏主意?

当我尝试使用不可见的视图运行配置 MediaPlayer 实例时,它似乎使我的模拟器崩溃。

4

2 回答 2

3

您可以将播放列表制作为数组列表

private int url = 0;
private ArrayList<String> videoList = new ArrayList<String>();

并将 url 添加到列表中

    videoList.add("/mnt/sdcard/v4.mp4");
    videoList.add("/mnt/sdcard/v3.mp4");
    videoList.add("/mnt/sdcard/v1.mp4");

并在创建方法调用

playVideo(videoList.get(0));

然后调用 OnCompletionListener 方法

url++;
        if (mVideoView != null) {
            current = null;             
            mVideoView.stopPlayback();
        }

        if (url > videoList.size() - 1) {
            url = 0;
        }

        playVideo(videoList.get(url));
于 2012-12-24T08:18:19.673 回答
0

我关注了Video View 上的 API Demo,它是如何设置 VideoView 的:

mVideoView.setVideoURI(Uri.parse(Uri.encode(URLString)));
mVideoView.setMediaController(new MediaController(this));
mVideoView.requestFocus();

我不能100%确定,但可以肯定的是,当您调用 VideoView.setVideoURI() 时,VideoView 会创建并设置一个 MediaPlayer 对象。然后,它会在下一次调用时将 MediaController 附加到它。

您可能只需为 OnCompletionListener 设置回调(MediaPlayer 文档中的更多信息),然后为播放列表中的新文件调用 VideoView.setVideoURI()。

于 2010-04-26T22:33:28.957 回答