gpt4 book ai didi

android - 在 MediaPlayer 仍在准备时停止或释放它

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

这是一个错误还是在准备时无法释放、停止或杀死 MediaPlayer

我有一个 MediaPlayer 实例在 Service 中运行,如果我停止、释放、将其设置为 null,它会正常停止,而 MediaPlayer处于准备状态。但是,如果我停止、释放,如果它处于准备状态,则将其设置为 null。

onPrepared() 在停止、释放、设置为 null 后调用。一些解决方法?

我认为当用户想要在 MediaPlayer 完成准备之前停止它是常见的用例。

最佳答案

通过查看 MediaPlayer documentation , 不允许对未初始化的对象调用 stop();这是有道理的,因为您无法停止尚未运行/就绪的内容。

另一方面,release() 似乎在查看了the source code of MediaPlayer 之后就成功了。 .

但是添加一个 bool 标志来指示不再需要 MediaPlayer 对象并在 onPrepared() 被调用。

伪代码如下所示:

public void cancel(){
mCancel = true;
}

public void onPrepared(MediaPlayer player){
if(mCancel){
player.release();
//nullify your MediaPlayer reference
mediaPlayer = null
}
}

关于android - 在 MediaPlayer 仍在准备时停止或释放它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16544891/

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