Android mediaPlayer - 有 "isPrepared()"或 "getStatus()"方法吗?

标签 android android-mediaplayer

我在使用 Android 的 MediaPlayer 时遇到问题。它似乎缺少重要的功能,主要是获取 MediaPlayer 的当前状态或了解它是否准备好的方法。我知道有准备好的监听器,但是 MediaPlayer 的持续时间比 Activity 长,所以当播放 Activity 恢复时,获取当前播放器状态会很好,无论它是否正在尝试加载媒体,是否加载媒体等. 是我遗漏了什么,还是我必须自己跟踪玩家状态?

其他很好的功能是 onPlayStateChanged() - 我目前必须手动跟踪播放状态。我做错了吗?

最佳答案

希望现在给出答案还为时不晚。 MediaPlayer类没有 isPrepared() 或 getStatus() 方法,您必须自己跟踪其状态。不过,这并不难。

MediaPlayer 类有一个非常有用的状态图。您应该根据该图实现您的服务。此外,如果您始终从同一个线程控制 MediaPlayer 对象,则很容易跟踪其状态,因此我建议您这样做。 prepareAsync() 方法是您必须处理的唯一异步方法,但您可以保留一个 bool 值,指示播放器正在准备中,从 prepareAsync() 调用直到 onPrepared() 为“真”叫。无论如何,如果您不小心从非法状态调用任何方法,您总是可以实现 onError 并捕获 IllegalStateException 以避免崩溃。

尽管如此,media playback guide对我帮助很大。

关于Android mediaPlayer - 有 "isPrepared()"或 "getStatus()"方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11876229/

相关文章:

java - 从 BaseAdapter 内的 Activity 调用函数

android - 根据设备创建将打开网站、iOS、Android 或 Win8 应用程序的 Web 链接

android - Android 类 BaseAdapter 中方法 getItem 和 getItemId 的 Intent 是什么?

android - 在 Android Things 上扫描 Wifi 网络返回空列表

android - 如何使用位置或加速度计或其他方式在 Android 应用程序中获得速度

android - MediaPlayer - 使用铃声音量而不是媒体音量

android - 通话的最佳音源设置是什么?

java - 如何为我的媒体播放器创建停止按钮

Android MediaPlayer 不会暂停

java - 在 onClickListener 中显示 Toast