gpt4 book ai didi

android - PCM Raw Bytes [] 到 Android 上的音频

转载 作者:IT王子 更新时间:2023-10-28 23:29:23 24 4
gpt4 key购买 nike

我目前有一个字节数组形式的 PCM 音频。格式是有符号的 16 位小端。我想将其转换为 Android 上的一些可播放格式,最好是 3.2 或更高版本。有人对如何做到这一点有建议吗?我做了一些研究并尝试了以下方法,但没有一个成功。如果有人能提出更好的方法或指出我哪里出错了,将不胜感激。

我尝试使用正确的音频设置创建 AudioFormat,但是 Android 不支持 javax.sound.sampled 库。

我也尝试将 PCM 数据写入波形文件,但在获取所有必要的 wav header 信息时遇到了麻烦。

我也尝试过使用 Android 提供的 AudioTrack 类来播放 PCM 数据。然而,我似乎听不到任何声音。这是我的方法:

    public void playback(){
try{
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, 500000, AudioTrack.MODE_STATIC);
audioTrack.write(audio, 0, 500000);

} catch(Throwable t){
Log.d("Audio","Playback Failed");
}
}

任何建议将不胜感激。

最佳答案

http://developer.android.com/reference/android/media/AudioTrack.html

这个类看起来正是你所需要的!

write(byte[] audioData, int offsetInBytes, int sizeInBytes)

将音频数据写入音频硬件进行播放。

编辑

将您的流更改为 AudioManager.STREAM_MUSIC

关于android - PCM Raw Bytes [] 到 Android 上的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267687/

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