gpt4 book ai didi

android - setVideoSurfaceTexture 失败 : -22 in mediaplayer

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

我尝试使用 MediaPlayer (Android ICS) 循环播放多个视频,并在每次调用 oncompletion() 时更改视频。

它工作得很好,但在随机时间后应用程序卡住并且我收到错误:

[SurfaceView] connect : already connected (cur=3, req=3) setVideoSurfaceTexture failed : -22

当这个错误发生时,它会在内部调用重置播放器

引用:媒体播放器.cpp

if (err != OK) {
LOGE("setVideoSurfaceTexture failed: %d", err);
// Note that we must do the reset before disconnecting from the ANW.
// Otherwise queue/dequeue calls could be made on the disconnected
// ANW, which may result in errors.
reset();
disconnectNativeWindow();
return err;
}

根据我的代码,我收到了 onprepared() 的通知并开始播放。

由于这个错误,实际上没有播放。

所以当这个问题发生并且媒体播放器没有播放时,我尝试重置媒体播放器并调用 prepare(),但我无法捕捉到这个错误(mp.isPlaying()->true(因为调用了 start( ) 在 onprepared() 中)。

我尝试这样的逻辑

onprepared() {
mp.start();
if (pbm : [SurfaceView] connect : already connected (cur=3, req=3)
setVideoSurfaceTexture failed : -22 ) {
reset the mediaplayer source and call prepare
}
}

我怎样才能找到这个错误来重新启动媒体播放器?

最佳答案

我们可以通过以下方式避免这个问题...

   mediaPlayer.setDisplay(null);

mediaPlayer.reset();

在此之后,在启动媒体播放器之前再次设置 surfaceholder

    mediaPlayer.setDisplay(surfaceHolder1);

mediaPlayer.start(); in onprepared notification.

关于android - setVideoSurfaceTexture 失败 : -22 in mediaplayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072376/

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