Android 无法从文件中播放录制的原始PCM

Android 无法从文件中播放录制的原始PCM,android,Android,我已将录制的音频原始PCM保存到一个文件rxrawpcm.PCM中,之后我尝试播放PCM文件,但无法播放录制的PCM?我没有听到录音,只听到嗡嗡的声音 配置 Stream Type :STREAM_VOICE_CALL Sample Rate : 8000 Audio Format :PCM_16BIT MODE :MODE_STREAM Channel Config :CHANNEL_CONFIGURATION_MONO 录音机和音轨配置 Stream

我已将录制的音频原始PCM保存到一个文件rxrawpcm.PCM中,之后我尝试播放PCM文件,但无法播放录制的PCM?我没有听到录音,只听到嗡嗡的声音

配置

Stream Type     :STREAM_VOICE_CALL
Sample Rate     : 8000
Audio Format    :PCM_16BIT
MODE        :MODE_STREAM
Channel Config  :CHANNEL_CONFIGURATION_MONO
录音机和音轨配置

Stream Type     :STREAM_VOICE_CALL
Sample Rate     : 8000
Audio Format    :PCM_16BIT
MODE        :MODE_STREAM
Channel Config  :CHANNEL_CONFIGURATION_MONO
录制

byte[] buffer=new byte[1600];
int read = audioRecord.read(buffer, 0,buffer.length);
if(recordAudio){
if(out!=null){
out.write(buffer);
}
球员方面

FileInputStream fis=new FileInputStream(rxFile);
byte[] buffer=new byte[1600];

while(fis.read(buffer)!=-1){
audioPlayer.write(buffer, 0, buffer.length);
}

您的缓冲区大小可能太小。您应该使用getMinBufferSize方法来确定不会导致缓冲区溢出的最小缓冲区大小。此问题中投票最多的答案演示了如何使用适当的缓冲区大小正确设置音频录制。

您的缓冲区大小可能太小。您应该使用getMinBufferSize方法来确定不会导致缓冲区溢出的最小缓冲区大小。此问题中得票最多的答案演示了如何使用适当的缓冲区大小正确设置音频录制。

您需要确保采样率、位深度、通道数(通常为单声道/交错立体声)为了播放数据,所有的端点都是一致的。嗨,你能再检查一下我的问题吗?你需要确保采样率、位深度、通道数(通常是单声道/交错立体声)为了回放数据,endian和ness都是一致的。嗨,你能再检查一下我的问题吗?事实上,我能回放音频。但只有在从文件播放时,它才给我带来麻烦。我已将缓冲区大小设置为8320。看起来您正在写入整个读取缓冲区,而您应该使用读取计数只写入已读取的字节数<代码>输出。写入(缓冲区,0,读取)这是一个简单的任务,但我不知道为什么我没有得到正确的输出,实际上我可以播放音频循环回。但只有在从文件播放时,它才给我带来麻烦。我已将缓冲区大小设置为8320。看起来您正在写入整个读取缓冲区,而您应该使用读取计数只写入已读取的字节数<代码>输出。写入(缓冲区,0,读取)这是一个简单的任务,但我不知道为什么我没有得到正确的输出