Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android连续播放多个mp4文件_Android_Video_Mpeg 4 - Fatal编程技术网

Android连续播放多个mp4文件

Android连续播放多个mp4文件,android,video,mpeg-4,Android,Video,Mpeg 4,我正在为Android开发DASH客户端,并在Android上测试mp4格式的多段视频播放。因此,到目前为止,我尝试了两种方法: 使用VideoView: videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { videoView.setVideoURI(uri);

我正在为Android开发DASH客户端,并在Android上测试mp4格式的多段视频播放。因此,到目前为止,我尝试了两种方法:

使用VideoView:

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp) {
        videoView.setVideoURI(uri);    
        videoView.requestFocus();
        videoView.setVisibility(View.VISIBLE);
        videoView.start();
    }
});
使用TextureView:

mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mediaPlayer) {
        mediaPlayer.start();
    }
});

mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp) {
        try {
            mMediaPlayer.setSurface(surface);
            mMediaPlayer.reset();
            mMediaPlayer.setDataSource(file.getAbsolutePath());
            mMediaPlayer.prepareAsync();
    } catch (Exception e) {
        e.printStackTrace();
        }    
    }
});
好的,两个都可以,但是切换到下一个文件时有一点延迟。是什么原因造成的?我是否做错了什么,可以改进代码?我读到了关于使用MediaExtractor和MediaCodec API更好地播放多个视频的文章,这些文章还改进了DASH与Android Verison的兼容性,但我还不知道如何使用它们在表面上播放视频和音频。为了播放视频或音频,我只能找到如何使用它们的来源


我希望有人能帮助我无缝地连续播放多个视频片段。

与编解码器通话时,初始配置和从输入到输出的延迟会有一点启动延迟。您可能需要启动播放机,发送几帧,然后暂停播放机来“预热”,而之前的视频仍在屏幕上显示。理想情况下,未显示的帧是插入流开头的空白。这样做可能至少和听起来一样困难-|嘿,谢谢你的回答!直到现在我还专注于其他事情,因为这太令人沮丧了,但现在我回到那个问题上来,想解决它。。。您认为使用MediaCodec API可能是更好的方法吗?我真的不知道如何用音频+视频播放多个文件,但如果它更适合这个问题,我想我必须试试。我最后一次尝试是总是准备一个mediaplayer,下一个将要使用,但这也造成了一些延迟。真的没有简单的办法吗?