You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
设置:淡入淡出开启,音量 100,EQ 关闭,响度归一化关闭
相关日志摘录
09:43:42.712 E SPlayer-Next CoreAudio HALC_ProxyIOContext::IOWorkLoop: skipping cycle due to overload
09:43:42.736 E coreaudiod Overload possibly due to HAL client proc exceeding io cycle budget.
09:43:42.700 WARN audio_engine::audio_output: 音频输出流失败 error=A buffer underrun or overrun occurred.
09:43:43.007 INFO audio_engine::bindings::player: 重新初始化音频输出设备
09:43:43.030 INFO audio_engine::audio_output: 打开音频输出配置 id="coreaudio:80-99-E7-51-83-DF:output" name=WH-1000XM4 sample_rate=44100
09:43:43.093 DEBUG audio_engine::audio_output: 释放音频输出配置 generation=10
多次复现均为相同模式,例如:
09:50:31.959 SPlayer-Next skipping cycle due to overload
09:50:31.938 音频输出流失败 error=A buffer underrun or overrun occurred.
09:50:32.242 重新初始化音频输出设备
09:57:05.821 SPlayer-Next skipping cycle due to overload
09:57:05.798 音频输出流失败 error=A buffer underrun or overrun occurred.
09:57:06.104 重新初始化音频输出设备
10:12:46.728 SPlayer-Next skipping cycle due to overload
10:12:46.605 音频输出流失败 error=A buffer underrun or overrun occurred.
10:12:46.927 重新初始化音频输出设备
备注
检查清单
环境信息
SPlayer-Next 版本:1.1.0
系统:macOS 15.7.3(Build 24G419)
设备:MacBook Air(M2,Mac14,2,16GB)
输出设备:Sony WH-1000XM4(蓝牙 A2DP,44.1kHz)
设置:淡入淡出开启,音量 100,EQ 关闭,响度归一化关闭
具体信息
问题描述
在 macOS 上使用 SPlayer-Next 播放音乐时,切换应用或系统前台应用发生变动的瞬间,正在播放的音频会概率性中断,时长约 0.3–0.8 秒,然后自动恢复。旧版 SPlayer 在同一台设备、同样使用场景下没有这个问题。
从系统日志和 SPlayer-Next 自身日志看,每次中断的触发链完全一致:
HALC_ProxyIOContext::IOWorkLoop: skipping cycle due to overload
音频输出流失败 error=A buffer underrun or overrun occurred.
关键点
复现步骤
期望行为
瞬时 underrun 不应导致整个音频输出流被销毁并重建。期望 SPlayer-Next 对可恢复的瞬时 underrun 进行容忍处理,例如短暂静音/继续缓冲,而不是触发 reinitOutput() 重建蓝牙音频链路。
实际行为
瞬时 underrun 被当作致命错误处理,触发音频输出流重建,导致蓝牙 A2DP 连接短暂中断,产生明显可听见的静音。
环境信息
相关日志摘录
09:43:42.712 E SPlayer-Next CoreAudio HALC_ProxyIOContext::IOWorkLoop: skipping cycle due to overload
09:43:42.736 E coreaudiod Overload possibly due to HAL client proc exceeding io cycle budget.
09:43:42.700 WARN audio_engine::audio_output: 音频输出流失败 error=A buffer underrun or overrun occurred.
09:43:43.007 INFO audio_engine::bindings::player: 重新初始化音频输出设备
09:43:43.030 INFO audio_engine::audio_output: 打开音频输出配置 id="coreaudio:80-99-E7-51-83-DF:output" name=WH-1000XM4 sample_rate=44100
09:43:43.093 DEBUG audio_engine::audio_output: 释放音频输出配置 generation=10
多次复现均为相同模式,例如:
09:50:31.959 SPlayer-Next skipping cycle due to overload
09:50:31.938 音频输出流失败 error=A buffer underrun or overrun occurred.
09:50:32.242 重新初始化音频输出设备
09:57:05.821 SPlayer-Next skipping cycle due to overload
09:57:05.798 音频输出流失败 error=A buffer underrun or overrun occurred.
09:57:06.104 重新初始化音频输出设备
10:12:46.728 SPlayer-Next skipping cycle due to overload
10:12:46.605 音频输出流失败 error=A buffer underrun or overrun occurred.
10:12:46.927 重新初始化音频输出设备
备注