我想实现基本的媒体播放器功能,但对 PrepareAsync() 感到困惑 和 Prepare() 方法调用。如果音频文件在 raw 文件夹中,应该使用哪一个。
最佳答案
这些方法之间的区别基本上在于它们执行的线程。
Prepare
在您调用它的线程(最常见的 UI 线程)中运行,因此如果它花费很长时间(缓冲来自 Internet 的视频等),它将阻塞您的 UI 线程,用户可能收到 ANR。
PrepareAsync
在后台线程中运行,因此 UI 线程不会被阻塞,因为它几乎立即返回。但是播放器还没有准备好,因此您需要设置 onPreparedListener
以便知道 MediaPlayer
何时可以使用。
关于Android:媒体播放器 PrepareAsync() 和 Prepare() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25446420/