gpt4 book ai didi

ios - AudioUnitRender 卡在 AUSampler 上

转载 作者:行者123 更新时间:2023-11-29 00:22:42 26 4
gpt4 key购买 nike

我有一个音乐制作应用程序,它使用 AUSampler 和 AURemoteIO 单元来播放用户定义的音符。我遇到一个问题,在使用一段时间后,对采样器上的 AudioUnitRender 的调用永远不会返回,挂起音频线程并使音频输出静音。此时,CPU 使用率也会急剧上升,因为音频线程不断向设备控制台(而不是调试器输出)发出错误消息:

May 11 11:45:12 <device name> mediaserverd(CoreAudio)[2296] <Notice>: HALS_IOContext.cpp:1496:IOWorkLoop_HandleOverload: HALS_IOContext::IOWorkLoop_HandleOverload: Overload on context 96 current time: 11788974 deadline: 11788958

此消息由 _os_log_impl 记录在 AUSampler 渲染内(特别是 VoiceEnvelope::GetRunFrameCount )。

有人对为什么会发生这种情况以及如何避免这种情况有建议吗?

最佳答案

我发现了这个问题。我将大于缓冲区大小的偏移量传递到 MusicDeviceMIDIEvent 中,这会导致问题。发生这种情况是由于提供给渲染回调的时间戳偶尔发生跳跃。我能够通过检查并忽略偏移量大于当前回调帧数的事件来解决该问题。

关于ios - AudioUnitRender 卡在 AUSampler 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43920913/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com