2011-07-12 18 views
6

हम एंगस्ट्रॉम लिनक्स पर ffserver/ffmpeg से http के माध्यम से ऑडियो स्ट्रीम कर रहे हैं। एफएमपीपीईजी ऑडियो कोडेक पीसीएम 16-बिट थोड़ा एंडियन "पीसीएम_एस 16 एल" पर हस्ताक्षर किया गया है। Ffmpeg स्ट्रीम प्रारूप "wav" है। इन दोनों को एंड्रॉइड पर समर्थित होने का दावा किया गया है: http://developer.android.com/guide/appendix/media-formats.html#coreएंड्रॉइड स्ट्रीमिंग WAV ऑडियो त्रुटि: MediaPlayer तैयार विफल: स्थिति = 0x1

वीएलसी बिना किसी समस्या के स्ट्रीम को ढूंढता है और चलाता है। वीएलसी के तहत "कोडेक विवरण", यह कहते हैं: प्रकार: ऑडियो, कोडेक: पीसीएम S16 LE (Araw) चैनल: स्टीरियो नमूना दर: 48000 हर्ट्ज नमूना प्रति बिट: 16

हम साधारण परीक्षण आवेदन बनाया एंड्रॉइड में स्ट्रीम लेने और स्ट्रीम करने के लिए नीचे और यह त्रुटि प्राप्त करें: java.io.IOException: विफल विफल: स्थिति = 0x1

हमने HTTP डीबगर प्रो का उपयोग कर HTTP शीर्षलेख की जांच की। रिस्पांस हैडर आइटम (जब वीएलसी के माध्यम से सामान्य रूप से करते हैं): [प्रतिक्रिया]: एचटीटीपी/1.0 200 ठीक Pragma: कोई कैश सामग्री प्रकार: ऑडियो/x-wav

हम वेब की खोज की है इस मुद्दे पर दो दिनों से अधिक मदद के लिए और खाली हाथ आ गया है। कोई मदद बहुत की सराहना की जाएगी।

------------ टेस्ट एपीपी ------------------------ पैकेज com.shaneahern.streamtest; आयात java.io.IOException; आयात android.app.Activity; आयात android.media.AudioManager; आयात android.media.MediaPlayer; आयात android.os.Bundle; आयात android.util.Log;

सार्वजनिक वर्ग BareBonesStreamTestActivity गतिविधि { @Override सार्वजनिक शून्य OnCreate (बंडल 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(); 
    } 
} 

}

------------ त्रुटि लॉग ------------------------

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) 

उत्तर

1

मुझे लगता है कि आप पर एक नज़र लेने के लिए चाहते हो सकता है: Using AudioTrack to play Wav file

Another usefull link

मैं एक कच्चे धारा डाउनलोड किया है अपने आप को और यह अच्छी तरह से काम करता है।

+0

अच्छा विचारों! धन्यवाद! मैं इसे देख लूँगा। – nbonwit

0

हालांकि यह देर हो चुकी है, मुझे MediaPlayer के साथ काम करते समय भी वही त्रुटि मिली।

कुछ आर & डी के बाद मुझे समस्या का स्रोत मिला। भविष्य के लिए मैं लिख यह क्षेत्र जवाब देने के लिए

मेरे मामले में यह हुआ है क्योंकि मैं UnSupported File to MediaPlayer.

दिया तो, यदि यह तो जाँच होता है कि आपके दिए गए फ़ाइल सही है।

अन्य कारणों से:

  1. फ़ाइल पथ त्रुटि, गलत यूआरआई या निर्देशिका
  2. अनुमति समस्या
संबंधित मुद्दे