AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by client due to mismatching sample rate

て烟熏妆下的殇ゞ 提交于 2019-12-18 03:57:13

问题


Does anybody know how to fix this warning message?

07-14 10:38:55.411 V/tracker-audiotest(22426): Recording Thread::run(): start audioRecord recording. 07-14 10:45:51.490 "W/AudioTrack( 607): AUDIO_OUTPUT_FLAG_FAST denied by client due to mismatching sample rate (44100 vs 48000)"

When I test the audio latency on Android 4.4, I face a suddenly delay increasing after I saw this warning message. But I don't change the sample rate during the test and the initial setting is in 48kHz. This warning message happen after 7 minutes recording started.

You can test this project on your device if needed. The project is in GitHub:

https://github.com/garyyu/OpenSL-ES-Android-DelayTest


回答1:


The AUDIO_OUTPUT_FLAG_FAST is denied because you are using a different rate than the one supported in hardware. You need to query the hardware supported sampling rate and record at that rate rather than hard code it to 48kHz.




回答2:


You may try to use Java function interface:
AudioManager myAudioMgr = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
nativeSampleRate = myAudioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE);

to retrieve the hardware default sample rate on your phone, use that to create the player.
Also try to use: nativeSampleBufSize =myAudioMgr.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER);

to get default audio buffer size( it is in frames ) and use that for your playback.

You could look at the JNI sample code audio-echo if JNI is ok for you.




回答3:


Try changing the sample rate at

frameworks/base/
frameworks/av/
hardware/libhardware

locations.

default sample rate is 44100 try setting the sample rate you want (your audio files have). it will work.

cheers.



来源:https://stackoverflow.com/questions/24729488/audiotrack-audio-output-flag-fast-denied-by-client-due-to-mismatching-sample-ra

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!