0

在我的 android 应用程序中,我使用 MediaPlayer 播放声音。但是,MediaPlayer 期望注册一堆不同的侦听器:onPreparedListeneronCompletionListeneronSeekCompleteListener等。没有它们,MediaPlayer 会向 logcat 发出错误消息:

12-10 19:28:03.605: E/MediaPlayer(1820): mOnCompletionListener is null. Failed to send MEDIA_PLAYBACK_COMPLETE message.

我的应用程序不需要对这些事件执行任何操作,因此不需要监听器。处理这个问题的标准方法是什么?我应该注册空白听众吗?我不应该注册任何听众吗?如果是这样,我该如何关闭错误消息?

4

1 回答 1

2

我不确定您使用的是什么 API 级别,但这些错误消息似乎不在 API 14+ 的 Android 源代码中。错误消息可能出现在 Android 的 MediaPlayer 类的早期版本中。如果您安装了最新的 SDK 并下载了源代码,则该类位于:/sdk/sources/android-/android/media/MediaPlayer.java。请注意,“TAG”变量定义为:

private final static String TAG = "MediaPlayer";

并且 OnCompletionCallback 设置使用:

public void setOnCompletionListener(OnCompletionListener listener)
{
    mOnCompletionListener = listener;
}

这再次证实了我的怀疑,即您可能使用的是较旧的 SDK。无论如何,看起来简单的解决方法就是添加带有空回调方法的侦听器。我希望这有帮助。

于 2012-12-12T05:09:20.753 回答