Soundpool经常显示重要延迟并发出“深度缓冲区回放”消息

时间:2016-06-26 19:57:35

标签: android audio soundpool

我在运行5.1的Moto-E上测试Soundpool。它通常以极佳的延迟开始 - 但随后音频开始挂起一百毫秒或更长时间,并显示以下消息:

  

06-26 15:03:49.213 3865-9536 /? E / DEBUG MESSAGE:播放音符

     

06-26 15:03:49.331 299-876 /? D / audio_hw_primary:out_set_parameters:输入:usecase(0:deep-buffer-playback)kvpairs:routing = 8

     

06-26 15:03:49.331 299-876 /? V / msm8916_platform:platform_get_output_snd_device:输入:输出设备(0x8)

     

06-26 15:03:49.331 299-876 /? V / msm8916_platform:platform_get_output_snd_device:exit:snd_device(耳机)

     

06-26 15:03:49.331 299-876 /? D / audio_hw_extn:audio_extn_set_anc_parameters:anc_enabled:0

     

06-26 15:03:49.331 299-876 /? E / soundtrigger:audio_extn_sound_trigger_set_parameters:str_params NULL

     

06-26 15:03:49.334 3865-9536 /? E / DEBUG MESSAGE:播放注释后

DEBUG消息是我的。其他是系统生成的。请注意,我输了100多分钟。我检查了我的采样率,这很好。每个音符也不会发生这种情况。请问是否有人熟悉这类错误?

1 个答案:

答案 0 :(得分:0)

这不是错误。您的手机进入睡眠模式:您可以使用长缓冲区(通过deep_buffer)流式传输音乐,并在每个缓冲区重新填充之间,您的CPU进入睡眠状态。

备用电池是正常行为。

快速解决方案是在AUDIO_OUTPUT_FLAG_DEEP_BUFFER中对包含标记$system/etc/audio_policy.conf的部分进行评论:

deep_buffer {
  sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
  channel_masks AUDIO_CHANNEL_OUT_STEREO
  formats AUDIO_FORMAT_PCM_16_BIT
  devices AUDIO_DEVICE_OUT_EARPIECE|AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADSET|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_ALL_SCO|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_PROXY|AUDIO_DEVICE_OUT_LINE
  flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
}

或者,使用像https://forum.xda-developers.com/apps/magisk/module-universal-deepbuffer-remover-t3577067

这样的软件