Flutter:AssetsAudioPlayer播放时终止其他音视频的解决方案咨询
解决AssetsAudioPlayer播放提示音打断背景音频的问题
要让答题应用的提示音和用户正在播放的音乐/视频共存,核心是调整AssetsAudioPlayer的音频会话配置,允许它与其他音频混合播放,而非抢占音频焦点。
修改代码配置
在调用open方法时,添加audioSessionConfiguration参数,指定音频会话的类别和混合选项:
final assetsAudioPlayer = AssetsAudioPlayer(); assetsAudioPlayer.open( Audio("sounds/correct.mp3"), // 配置音频会话,允许与其他音频混合 audioSessionConfiguration: AudioSessionConfiguration( avAudioSessionCategory: AVAudioSessionCategory.playback, avAudioSessionCategoryOptions: AVAudioSessionCategoryOptions.mixWithOthers, avAudioSessionMode: AVAudioSessionMode.defaultMode, avAudioSessionRouteSharingPolicy: AVAudioSessionRouteSharingPolicy.defaultPolicy, avAudioSessionSetActiveOptions: AVAudioSessionSetActiveOptions.none, ), );
关键配置说明
mixWithOthers:这个选项是核心,它告诉系统当前应用的音频不需要独占音频通道,可以和其他应用的音频混合播放。playback类别:适用于需要发声的场景(即使提示音时长较短,该类别也能确保在后台音频播放时正常发声)。
额外注意
如果应用同时支持Android和iOS,AssetsAudioPlayer会自动处理跨平台的音频会话差异,上述配置在两个平台都能生效。错误提示音只需替换音频路径为sounds/wrong.mp3,复用同样的配置即可。
内容的提问来源于stack exchange,提问作者Ebuzer SARIYERLİOĞLU
相关产品推荐
相关产品推荐

