gpt4 book ai didi

android - 在准备状态下重置 MediaPlayer 是否安全?

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:51:32 25 4
gpt4 key购买 nike

我正在使用 MediaPlayer 编写一个允许用户跳过实际曲调的音频播放器。跳过请求可能随时发生,包括在调用 MediaPlayer.prepareAsync 和即将到来的 onPrepared 回调之间。文档说:

重要的是要注意 Preparing 状态是一个 transient ,当 MediaPlayer 对象处于 Preparing 状态时调用任何具有副作用的方法的行为是未定义的。

这是否包括重置甚至释放的调用?因为如果是这样,那么我将不得不等待 onPrepared 回调来重用 MediaPlayer,或者如果我不想等待并在 onPrepared 回调上释放过时的 MediaPlayer,则分配一个全新的 MediaPlayer,对吗?

最佳答案

我还构建了一个流媒体音乐播放器,并在准备状态中苦苦挣扎。更糟糕的是,在某些流中,prepare() 永远挂起以下载(缓冲)数据,而无需调用 onBufferUpdate。调用 release 什么也没做。因此,尽管文档中有建议,但我的做法是在 15 秒后从另一个线程调用卡住的 MediaPlayer 上的 reset()。这导致它抛出异常并使其进入错误状态。捕捉到异常后,我调用了 release()。这似乎已经解决了问题。我希望这对某人有用。

关于android - 在准备状态下重置 MediaPlayer 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4971914/

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