Android Streaming Wav Audio Error: MediaPlayer Prepare failed: status = 0x1

Мы передаем аудио через http из ffserver / ffmpeg на Angstrom Linux. Аудиокодек ffmpeg – это PCM, подписанный 16-битным маленьким конечным «pcm_s16le». Формат потока ffmpeg – «wav». Оба из них, как утверждается, поддерживаются на Android здесь: http://developer.android.com/guide/appendix/media-formats.html#core

VLC находит и воспроизводит поток без каких-либо проблем. В разделе VLC «Сведения о кодеке» говорится: Тип: Аудио, Кодек: PCM S16 LE (araw) Каналы: Стерео Частота дискретизации: 48000 Гц Биты на образец: 16

Мы создали простое тестовое приложение ниже, чтобы забрать и воспроизвести поток в Android и получить эту ошибку: java.io.IOException: не удалось выполнить команду: status = 0x1

Мы проверили HTTP-заголовок с помощью HTTP Debugger Pro. Элементы заголовка ответа (при обычном воспроизведении через VLC): [Ответ]: HTTP / 1.0 200 OK Pragma: no-cache Content-Type: audio / x-wav

Мы искали в Интернете помощь по этому вопросу более двух дней и пришли с пустыми руками. Любая помощь будет принята с благодарностью.

———— TEST APP ———————— пакет com.shaneahern.streamtest; Import java.io.IOException; Import android.app.Activity; Import android.media.AudioManager; Import android.media.MediaPlayer; Import android.os.Bundle; Import android.util.Log;

Public class BareBonesStreamTestActivity extends Activity {@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(); } } 

}

————ЖУРНАЛ ОШИБОК————————

 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) 

Я думаю, вы можете взглянуть на: Использование AudioTrack для воспроизведения Wav-файла

Другая полезная ссылка

Я сам загрузил сырой поток, и он работает хорошо.

Хотя это уже поздно, я также получил ту же ошибку, когда работал с MediaPlayer .

После некоторых НИОКР я нашел источник проблемы. Для Будущего я записываю это, чтобы ответить на область

В моем случае это произошло потому, что я дал UnSupported File to MediaPlayer.

Итак, если это произойдет, убедитесь, что ваш файл прав.

Другие причины:

  1. Ошибка пути к файлу, неправильный URI или каталог
  2. Проблема разрешения
Intereting Posts
Изменить заголовок панели действий для каждой вкладки. Удалить все таблицы из базы данных sqlite Как увеличить камеру, чтобы покрыть путь в android googlemap? Существует ли библиотека обработки изображений / технология AR, подходящая для распознавания объектов в известном параметре? Android: Как создать YouTube-подобные VR-элементы управления? RelativeLayout внутри scrollview не прокручивает Настройка нескольких адаптеров для одного вида списка Диалоговое окно datepicker не может использовать swinner для устройства Android 7.0 Невозможно создать базу данных Android SQLite: ошибка PRAGMA Android Как я могу «перейти к другой ветке» в дереве «Back» предыдущего «Активность»? Java.lang.ClassCastException: android.app.Application нельзя передать в com.xxx.xxx.MyApplication Как создать выпуск подписанного файла apk с помощью Gradle? Android: добавление простого фрагмента Устаревшее предупреждение Runtime Kotlin (плагин Kotlin 1.1.2-release-Studio2.3-3) Как определить местоположение области уведомлений?