2011-07-12 30 views
6

Chúng tôi đang phát trực tuyến âm thanh qua http từ ffserver/ffmpeg trên Angstrom Linux. Codec âm thanh ffmpeg là PCM đã ký 16 bit chút "pcm_s16le". Định dạng luồng ffmpeg là "wav". Cả hai yêu cầu này đều được xác nhận là được hỗ trợ trên Android tại đây: http://developer.android.com/guide/appendix/media-formats.html#coreLỗi phát âm thanh Wav Android: Chuẩn bị MediaPlayer không thành công: trạng thái = 0x1

VLC tìm và phát luồng mà không gặp bất kỳ sự cố nào. Dưới VLC "Codec Details", nó nói: Type: Audio, Codec: PCM S16 LE (Araw) Kênh: Stereo tỷ lệ mẫu: 48000 Hz Bits mỗi mẫu: 16

Chúng tôi xây dựng các ứng dụng thử nghiệm đơn giản bên dưới để chọn và phát luồng này trong Android và nhận lỗi này: java.io.IOException: Chuẩn bị thất bại .: status = 0x1

Chúng tôi đã kiểm tra tiêu đề HTTP bằng Trình gỡ lỗi HTTP Pro. Các mặt hàng đáp ứng Tiêu đề (khi chơi bình thường qua VLC) là: [đáp ứng]: HTTP/1.0 200 OK pragma: no-cache Content-Type:/audio x-wav

Chúng tôi đã được tìm kiếm trên web để được trợ giúp về vấn đề này trong hơn hai ngày và đã đưa ra tay trắng. Mọi trợ giúp sẽ là rất nhiều đánh giá cao được đánh giá là.

------------ TEST APP ------------------------ gói com.shaneahern.streamtest; nhập java.io.IOException; nhập android.app.Activity; nhập android.media.AudioManager; nhập android.media.MediaPlayer; nhập android.os.Bundle; nhập android.util.Log;

public class BareBonesStreamTestActivity mở rộng Hoạt động { @ Override public void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState);

String streamUrl = "http://192.168.24.123:8080/test.wav"; 

    MediaPlayer mp = new MediaPlayer(); 
    Log.i("BareBonesStreamTestActivity", "MediaPlayer created"); 

    try { 
     mp.setDataSource(streamUrl); 
     Log.i("BareBonesStreamTestActivity", "setDataSource to " + streamUrl); 

     mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
     Log.i("BareBonesStreamTestActivity", "setAudioStreamType to AudioManager.STREAM_MUSIC"); 

     mp.prepare(); 
     Log.i("BareBonesStreamTestActivity", "prepare succeeded, calling start"); 

     mp.start(); 
    } catch (IllegalStateException e) { 
     Log.i("BareBonesStreamTestActivity", "prepare failed with IllegalStateException"); 
     e.printStackTrace(); 
    } catch (IOException e) { 
     Log.i("BareBonesStreamTestActivity", "prepare failed with IOException"); 
     e.printStackTrace(); 
    } 
} 

}

------------ LỖI LOG ------------------------

I/BareBonesStreamTestActivity( 727): MediaPlayer created 
I/StagefrightPlayer( 33): setDataSource('http://192.168.24.123:8080/ test.wav') 
I/BareBonesStreamTestActivity( 727): setDataSource to http://192.168.24.123:8080/test.wav 
I/BareBonesStreamTestActivity( 727): setAudioStreamType to AudioManager.STREAM_MUSIC 
E/MediaPlayer( 727): error (1, -2147483648) 
I/BareBonesStreamTestActivity( 727): prepare failed with IOException 
W/System.err( 727): java.io.IOException: Prepare failed.: status=0x1 
W/System.err( 727):  at android.media.MediaPlayer.prepare(Native Method) 
W/System.err( 727):  at com.shaneahern.streamtest.BareBonesStreamTestActivity.onCreate(BareBonesStr eamTestActivity.java: 30) 
W/System.err( 727):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1047) 
W/System.err( 727):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2627) 
W/System.err( 727):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java: 2679) 
W/System.err( 727):  at android.app.ActivityThread.access $2300(ActivityThread.java:125) 
W/System.err( 727):  at android.app.ActivityThread $H.handleMessage(ActivityThread.java:2033) 
W/System.err( 727):  at android.os.Handler.dispatchMessage(Handler.java:99) 
W/System.err( 727):  at android.os.Looper.loop(Looper.java:123) 
W/System.err( 727):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
W/System.err( 727):  at java.lang.reflect.Method.invokeNative(Native Method) 
W/System.err( 727):  at java.lang.reflect.Method.invoke(Method.java:521) 
W/System.err( 727):  at com.android.internal.os.ZygoteInit $MethodAndArgsCaller.run(ZygoteInit.java:868) 
W/System.err( 727):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
W/System.err( 727):  at dalvik.system.NativeStart.main(Native Method) 

Trả lời

0

Mặc dù điều này là muộn, tôi cũng gặp lỗi tương tự khi làm việc với MediaPlayer.

Sau một số R & D Tôi đã tìm thấy nguồn gốc của vấn đề. Đối với tương lai Tôi viết ra nó để trả lời khu vực

Trong trường hợp của tôi điều này xảy ra bởi vì tôi đã UnSupported File to MediaPlayer.

Vì vậy, nếu điều này xảy sau đó kiểm tra xem tệp cho bạn là đúng.

lý do khác:

  1. file con đường lỗi, không chính xác URI hoặc thư mục
  2. Permission Vấn đề
Các vấn đề liên quan