有人知道如何修复此警告消息吗?
07-14 10:38:55.411 V / tracker-audiotest(22426):录制Thread :: run():启动audioRecord录制。 07-14 10:45:51.490“W / AudioTrack(607):由于采样率不匹配(44100 vs 48000),客户拒绝了AUDIO_OUTPUT_FLAG_FAST”
当我在Android 4.4上测试音频延迟时,在看到此警告消息后,我突然意外地延迟了。但是我在测试期间没有改变采样率,初始设置是48kHz。录制开始7分钟后会出现此警告消息。
如果需要,您可以在设备上测试此项目。该项目位于GitHub:
答案 0 :(得分:3)
AUDIO_OUTPUT_FLAG_FAST 被拒绝,因为您使用的速率与硬件支持的速率不同。您需要查询硬件支持的采样率并以该速率进行记录,而不是将其硬编码为48kHz。
答案 1 :(得分:2)
您可以尝试使用Java功能界面:
AudioManager myAudioMgr =(AudioManager)getSystemService(Context.AUDIO_SERVICE);
nativeSampleRate = myAudioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE);
检索手机上的硬件默认采样率,使用它来创建播放器 也尝试使用: nativeSampleBufSize = myAudioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER);
获取默认音频缓冲区大小(以帧为单位)并将其用于播放。
如果JNI适合您,您可以查看JNI示例代码audio-echo。
答案 2 :(得分:0)
尝试更改
的采样率框架/碱/
框架/ AV /
硬件/ libhardware
位置。
默认采样率为44100尝试设置您想要的采样率(您的音频文件有)。它会起作用。
欢呼声。