gpt4 book ai didi

android - MediaPlayer.start() 也应该是一个新线程吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:39 29 4
gpt4 key购买 nike

这里的教程解释了服务实际上使用主线程。所以它使用 prepareAsync 来避免阻塞 UIS: http://developer.android.com/guide/topics/media/mediaplayer.html#asyncprepare

我想知道异步回调 onPrepared 在哪里运行。在示例中,onPrepared 调用 MediaPlayer 的开始。 start也是CPU密集型方法吗?如果它在同一个线程中运行,它也会阻塞。

最佳答案

MediaPlayer.start() 至少不是一个密集型操作。 MediaPlayer 使用它自己的 native 线程来执行任务,但是调用同步 prepare 方法对于 UI 线程来说可能会花费太长时间,尤其是当它是远程媒体时试图玩。在这种情况下,它必须等待一个或多个网络请求、缓冲数据等。如果您在主线程调用 prepareAsync,则 onPrepared 回调将发生在主线程上(或更准确地说,您从中调用它的任何线程)。

关于android - MediaPlayer.start() 也应该是一个新线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21438583/

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