【发布时间】:2015-01-26 18:25:13
【问题描述】:
我在使用特定 URI 启动 MediaPlayer 的 Logcat 中得到以下信息。通常,每个 Uri,无论好坏,都会播放或返回错误,除了这个特定的错误。
I/MPS﹕ PrepAsync started
V/MediaPlayer﹕ message received msg=8, ext1=0, ext2=0
V/MediaPlayer﹕ unrecognized message: (8, 0, 0)
V/MediaPlayer﹕ callback application
V/MediaPlayer﹕ back from callback
...然后挂在那里。
我真的只是在研究如何在错误处理程序中捕获此对话,但如果有人知道实际问题,那就更好了。
源代码FWIW:
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
}
try {
mediaPlayer.setDataSource(sUrl);
mediaPlayer.prepareAsync();
} catch (Exception e) {
Log.d(TAG, "Exception:"+e;
}
另外,我尝试过创建 OnInfoListener、OnError 和 OnBufferingUpdateListener。这些永远不会被调用。似乎 mediaPlayer 只是在 onPrepareAsync 期间消失了。
如果有人想玩这个,这里是 URL。
http://54.196.206.122/entercom-koitfmaac-64
我只是将其复制/粘贴到 VLC 以验证链接是否有效。
更新:在看了更多之后,如果我等待的时间足够长,最终我会得到这个:
I/dalvikvm﹕ threadid=3: reacting to signal 3
I/dalvikvm﹕ Wrote stack traces to '/data/anr/traces.txt'
更新:Shubhang Malviya 指出的这个问题是我需要将 URI.parse 用作:
mMediaPlayer.setDataSource(mContext, Uri.parse("http://54.196.206.122/entercom-koitfmaac-64"));
【问题讨论】:
-
此代码不足以识别您的问题。
-
发布你的源代码
-
@JonhSmith 我已经尝试使用你的网址,我的 onPrepared() 被调用
标签: android error-handling media-player