我在我的 android 应用程序中流式传输一些歌曲时遇到问题。这是我用于创建MadiaPlayer
和设置数据源的测试代码:
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setOnErrorListener(this);
mediaPlayer.setDataSource("http://streaming.ibroadcast.com/?file=MjA1MTIyMS0xMDA1NDQ1NC01MDYxNjY5LTEwMDAwMDQ=");
try {
mediaPlayer.prepare();
} catch (Exception ex) {
Log.e(Constants.LOG_TAG, ex.getMessage(), ex);
}
我明白了mediaPlayer.prepare()
:
10-31 15:41:27.130: ERROR/NuCachedSource2(174): source returned error -32, 0 retries left
10-31 15:41:34.388: ERROR/NuCachedSource2(174): source returned error -32, 0 retries left
10-31 15:41:37.371: ERROR/MediaPlayer(5360): error (1, -2147483648)
10-31 15:41:37.381: ERROR/log_tag (5360): Prepare failed.: status=0x1
java.io.IOException: Prepare failed.: status=0x1
at android.media.MediaPlayer.prepare(Native Method)
我尝试使用此代码流式传输一堆歌曲,并且此问题仅发生在三到四首歌曲中,但对于这些歌曲而言,它是 100% 可重现的。更重要的是,如果我将这些歌曲下载到 SD 卡并从那里播放它,它会毫无错误地播放。我还可以使用浏览器流式传输它。所有歌曲都有mp3
格式,服务器响应包含这样的标题:
Accept-Ranges: bytes
Connection: close
Content-Length: 5 MB
Content-Type: audio/mpeg
Date: 2013 Oct 31 14:43:01-8s
ETag: 831c011006861dc9b2fc89ef185f2f4b
Last-Modified: 2013 Aug 28 18:28:31-63d 21h
Server: Apache/2.2.25 (Amazon)
有谁知道出了什么问题?
更新: