gpt4 book ai didi

Android 流式传输 Wav 音频错误 : MediaPlayer Prepare failed: status=0x1

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:01 36 4
gpt4 key购买 nike

我们在 Angstrom Linux 上通过 ffserver/ffmpeg 的 http 传输音频。 ffmpeg 音频编解码器是 PCM 签名的 16 位小端“pcm_s16le”。 ffmpeg 流格式是“wav”。这两个都声称在 Android 上受支持:http://developer.android.com/guide/appendix/media-formats.html#core

VLC 可以毫无问题地找到并播放流。在 VLC“编解码器详细信息”下,它说:类型:音频,编解码器:PCM S16 LE (araw) channel :立体声采样率:48000 赫兹每个样本的位数:16

我们构建了下面的简单测试应用程序来在 Android 中获取和播放流并得到这个错误:java.io.IOException: 准备失败。: status=0x1

我们使用 HTTP Debugger Pro 检查了 HTTP header 。Response Header 项目(通过 VLC 正常播放时)是:【响应】:HTTP/1.0 200 OKPragma:无缓存内容类型:音频/x-wav

两天多来,我们一直在网上搜索有关此问题的帮助,但一无所获。任何帮助将非常感激。

------------测试应用------------------------包 com.shaneahern.streamtest;导入java.io.IOException;导入 android.app.Activity;导入 android.media.AudioManager;导入 android.media.MediaPlayer;导入 android.os.Bundle;导入 android.util.Log;

公共(public)类 BareBonesStreamTestActivity 扩展 Activity { @覆盖 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)

最佳答案

我想你可能想看看:Using AudioTrack to play Wav file

Another usefull link

我自己下载了一个原始流,效果很好。

关于Android 流式传输 Wav 音频错误 : MediaPlayer Prepare failed: status=0x1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6672165/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com