防止无音频 AVPlayer 暂停背景音频
Preventing no-audio AVPlayer from pausing background audio
我了解基于 AVAudioSession 类别的 AVPlayer 将在开始播放时暂停其他应用程序当前正在播放的背景音频。我想知道这是否是预期的行为,而不管正在播放的 item/content 类型如何?
我问的是在我的情况下显示没有声音的视频。视频文件不包含音轨。 AVPlayer 本身也设置为静音。对我来说有点奇怪,即使我不产生音频,我仍然必须更改为 AVAudioSession 类别。所以我想知道这是否是设计使然,或者是否有我想念的东西。例如,我可以设置没有音频会话的 AVPlayer,这样它就知道不必担心音频或类似问题。
没有。只需将音频类别设置为 "Ambient",这样它就不会踩到任何其他音频:
AVAudioSession *session = [AVAudioSession sharedInstance];
if (session) {
NSError *setCategoryError = nil;
BOOL success = [session setCategory:AVAudioSessionCategoryAmbient error:&setCategoryError];
if (success) {
NSError *activationError = nil;
[session setActive:YES error:&activationError];
} else {
NSLog(@"Failed to set music category to ambient. May interrupt other audio.");
}
}
我了解基于 AVAudioSession 类别的 AVPlayer 将在开始播放时暂停其他应用程序当前正在播放的背景音频。我想知道这是否是预期的行为,而不管正在播放的 item/content 类型如何?
我问的是在我的情况下显示没有声音的视频。视频文件不包含音轨。 AVPlayer 本身也设置为静音。对我来说有点奇怪,即使我不产生音频,我仍然必须更改为 AVAudioSession 类别。所以我想知道这是否是设计使然,或者是否有我想念的东西。例如,我可以设置没有音频会话的 AVPlayer,这样它就知道不必担心音频或类似问题。
没有。只需将音频类别设置为 "Ambient",这样它就不会踩到任何其他音频:
AVAudioSession *session = [AVAudioSession sharedInstance];
if (session) {
NSError *setCategoryError = nil;
BOOL success = [session setCategory:AVAudioSessionCategoryAmbient error:&setCategoryError];
if (success) {
NSError *activationError = nil;
[session setActive:YES error:&activationError];
} else {
NSLog(@"Failed to set music category to ambient. May interrupt other audio.");
}
}