我对Android Media Player感到很疯狂。
相同的代码适用于某些设备,但在其他设备上使用不同的错误代码失败。
我正在试图弄清楚错误(1,-103)和错误(1,-105)是什么意思,但没有找到关于此的文档。
我有一个控制媒体播放器对象的包装类,但这就是它的翻译方式:
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource("http://stream2.srr.ro:8000/");
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
mediaPlayer.prepareAsnyc();
在三星Galaxy SIII上我得到-1004错误,深度搜索后发现它可能是一个winamp Shoutcast Streaming问题。
在另一台设备上,我得到-103和-105错误,我找不到他们的意思。
我尝试添加一个errorlistener并返回true但它不起作用。
m_mediaPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
// TODO Auto-generated method stub
return true;
}
});
你能帮忙吗?
谢谢,
丹
答案 0 :(得分:0)
-3004记录在Android Developers上。它读作MEDIA_ERROR_IO,它指出文件或网络相关的操作错误。这会引导您进入流,因为您正在使用http。
另外两个我不知道..
答案 1 :(得分:0)
Android的大多数错误都遵循linux错误代码。 -103表示连接中止,主要是在需要网络连接但不可用时获得。 -105表示没有可用的缓冲区。如果您的应用尝试从网络源读取,您可能会得到这两个。
答案 2 :(得分:0)
我在我的应用程序中遇到同样的问题,我仍然在寻找答案,到目前为止我发现的只是视频格式导致了这个问题, 看看这些链接:
Android VideoView Cannot play video mp4
和
https://superuser.com/questions/489087/what-are-the-differences-between-h-264-profiles
我得到的是我们应该更改H.264配置文件并将其设置为基线。我仍在寻找在应用程序中转换它的方式,而不是在服务器上!