我在我的Android應用程序中播放一些歌曲時遇到問題。 以下是創建MadiaPlayer
和設置數據源我的測試代碼:MediaPlayer:在播放歌曲時準備失敗狀態0x1錯誤
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)
我tryed到流一堆使用此代碼。這個問題的歌曲僅發生三首或四首歌曲,但是對於那些歌曲來說它是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)
沒有人有想法有什麼不對嗎?
UPDATE:
這裏是not working song前1024個字節,這裏是working one
你能在這裏發表1024字節十六進制表示的工作和不工作的MP3文件?你在你的代碼的某個地方調用'mediaPlayer.release()'是不是? :) – Kristopher
當然,我已經使用該數據更新了我的帖子。我在'onCompletion'和'onError'監聽器中調用'mediaPlayer.release()',但是我的應用程序在它之前失敗了。 – Bersh