You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于AVCaptureSession与AVAudioSession导致AVPlayer播放暂停的技术问询

iOS 11.3中AVPlayer与AVCaptureSession切换时的播放暂停问题

我最近排查到一个棘手的兼容性问题,在这里跟大家同步下细节:

当调用-[AVPlayer play]方法后,立即执行两个操作——停止AVCaptureSession并修改AVAudioSession的类别,会导致AVPlayer意外暂停播放。

预期与实际行为差异

  • 预期逻辑:Capture会话和Player应该交替切换,同一时间只保持其中一个处于活跃状态
  • 实际问题:在iOS 11.3中,停止Capture会话的操作会连带导致正在播放的Player停止;而在iOS 9.3中,这个逻辑运行完全符合预期

复现代码示例

// 启动AVPlayer播放
[self.player play];

// 立即停止AVCaptureSession
[self.captureSession stopRunning];

// 修改AVAudioSession类别为播放模式
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
NSError *sessionError = nil;
[audioSession setCategory:AVAudioSessionCategoryPlayback error:&sessionError];
if (sessionError) {
    NSLog(@"Audio session category change failed: %@", sessionError.localizedDescription);
}

目前有视频可以直观展示这个问题:正常情况下应该在Capture和Player之间顺畅切换,但iOS 11.3中每次停止Capture时,Player都会被意外暂停。

内容的提问来源于stack exchange,提问作者jft0m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:16:11