【发布时间】:2023-11-03 12:10:01
【问题描述】:
当applicationDidEnterBackground: 触发时,我暂停正在使用AVAudioPlayer 播放的音频:
[self.avPlayer pause];
现在,当applicationWillEnterForeground: 触发时,音频开始自动播放!由于我没有启动音频,所以用户界面没有更新,显示音频仍处于暂停状态。
发生了什么事?这发生在 iPad 2 上的 iOS 6.x 中。此问题不会在运行 iOS 5.x 的旧 iPad 上重现。
这就是我设置AVAudioSession的方式:
// Setup the audio session
BOOL succeeded = NO;
NSError *sessionError = nil;
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setDelegate:self];
if ([session respondsToSelector:@selector(setPreferredSampleRate:error:)]) {
succeeded = [session setPreferredSampleRate:128000.0f error:&sessionError];
} else {
succeeded = [session setPreferredHardwareSampleRate:128000.0f error:&sessionError];
}
succeeded = [session setCategory:AVAudioSessionCategorySoloAmbient error:&sessionError];
succeeded = [session setActive:YES error:&sessionError];
【问题讨论】:
-
你为什么不做 [self.avPlayer pause];再次在 applicationWillEnterForeground: ?
-
你到底在哪里使用这个代码?
-
这是一种糟糕的尝试解决方案(在我看来)。话虽如此,:)我实际上确实尝试过,但它不起作用!我不知道这里有什么魔法。
-
AVAudioSession 在应用程序启动时设置。
标签: ios avaudioplayer avaudiosession