gpt4 book ai didi

Android VideoView 不播放顺序视频

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:48:16 24 4
gpt4 key购买 nike

我想连续播放 2 个视频。第一个视频总是播放得很好。完成后,您可以在日志中看到它设置了新的视频 URL,但随后 SurfaceView 抛出错误并且 VideoView 只是卡住在第一个视频的最后一帧。没有其他事情发生。有什么想法吗 ?谢谢!

LE:令人惊讶的是,第二个视频调用了 OnPreparedListener。

LE2:有时第二个视频播放得很好,有时却不行……而且我没有在它工作和不工作之间更改一行代码。纯属随机……

LE3:快速解决方案是在设置新视频 URL 之前添加此行:

mVideoView.setVisibility(View.GONE);

来自 OnCompletionListener 的代码:

setCurrentPlaybackUrl(); // sets mCurrentMediaUrl to the second video URL
mVideoView.setVideoPath(mCurrentMediaUrl);
mVideoView.start();

这是第一个视频播放结束时的日志输出:

10-22 12:32:35.762: I/AwesomePlayer(126): setDataSource_l('https://xx/TestingVideo_lo.mp4')
10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3)
10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22
10-22 12:32:35.762: E/BufferQueue(123): [SurfaceView] connect: already connected (cur=3, req=3)
10-22 12:32:35.762: E/MediaPlayerService(126): setVideoSurfaceTexture failed: -22

最佳答案

尝试 onCompletion(MediaPlayer mp) ,添加 mp.stop() 然后做你的事情。

编辑:我试过这个并且它正在工作:

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
play_video();
}
});

play_video();

其中 play_video 是以下方法:

void play_video() {
Uri uri = Uri.parse(video_link);
videoView.setVideoURI(uri);
videoView.requestFocus();
videoView.setVisibility(View.VISIBLE);
videoView.start();

}

唯一的区别是我播放了同一个视频两次,而不是两个不同的视频。

关于Android VideoView 不播放顺序视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13008929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com