android - 无法播放文件中录制的原始 PCM

标签 android

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

配置

AudioRecorder 和 AudioTrack 配置

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 方法来确定不会导致缓冲区溢出的最小缓冲区大小。此问题中投票最高的答案 Android AudioRecord class - process live mic audio quickly, set up callback function演示了如何使用适当的缓冲区大小正确设置录音。

关于android - 无法播放文件中录制的原始 PCM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9924406/

相关文章:

android - 在 Android 上点击后退按钮时关闭应用程序

android - Android 上的自定义鼠标指针

android - Google Play 因不安全的加密模式而拒绝我的应用

android - 如何限制用户在 Android 的 EditText 中输入的字符数?

java - 在android中的触摸绘制上创建喷雾效果

android - 将逗号分隔值字符串 (csv) 加载到 Quickoffice 或 Google Doc

android - 如何以编程方式在android中下载谷歌驱动器选择的文件?

java - 如何快速制作我的 Android 应用程序

java - API 23 本地位置不可用

android - FFT 音频输入