gpt4 book ai didi

ios - 相机消失后如何恢复播放音频?

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

我正在开发一个在后台播放音频的应用程序,同时使用其他应用程序使用 AVAudioPlayer。当相机打开时,音乐会静音,但应用程序生命周期的 AppDelegate 中的任何方法都不会被调用,因此我无法保存歌曲的播放列表位置或播放时间。

此外,当相机关闭时,我想让应用程序恢复播放背景音乐,但我还是没有找到任何回调方法来让我观察到这一变化。

您知道如何在应用程序在后台模式下运行时观察到摄像头是否已激活以及摄像头已关闭吗?

最佳答案

我是这样解决的。

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleAudioSessionInterruption:)
name:AVAudioSessionInterruptionNotification
object:[AVAudioSession sharedInstance]];

处理中断。

-(void)handleAudioSessionInterruption:(NSNotification*)notification
{
//NSLog(@"%@",notification);

NSNumber *interruptionType = [[notification userInfo] objectForKey:AVAudioSessionInterruptionTypeKey]; //1 Interuption Start, 0 Interuption Ends
NSNumber *interruptionOption = [[notification userInfo] objectForKey:AVAudioSessionInterruptionOptionKey];

if ([interruptionType integerValue] == AVAudioSessionInterruptionTypeBegan)
{
NSLog(@"Player %d interupted",playerNumber);
// • Audio has stopped, already inactive
// • Change state of UI, etc., to reflect non-playing state
[self.playPauseButton setTitle:@">" forState:UIControlStateNormal];
self.playingAudio = NO;

return;
}

if ([interruptionType integerValue] == AVAudioSessionInterruptionTypeEnded)
{
if ([interruptionOption integerValue] == AVAudioSessionInterruptionOptionShouldResume)
{
NSLog(@"Player %d Resume",playerNumber);
[self.playPauseButton setTitle:@"||" forState:UIControlStateNormal];
self.playingAudio = YES;

NSError *error = nil;
AVAudioSession *aSession = [AVAudioSession sharedInstance];
[aSession setMode:AVAudioSessionModeDefault error:&error]; //& means value at address
[aSession setCategory:AVAudioSessionCategoryPlayback error:&error];
//[aSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&error];
//[aSession setMode:AVAudioSessionModeSpokenAudio error:&error];
[aSession setActive: YES error: &error];
[self.audioPlayer play];
}
// • Make session active
// • Update user interface
// • AVAudioSessionInterruptionOptionShouldResume option
}

关于ios - 相机消失后如何恢复播放音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37580857/

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