我正在處理MPRemoteCommandCenter類的音頻錄製應用程序。我已經設置了命令中心來播放和暫停命令。下面添加的代碼片段。我正面臨pauseCommand的問題。即使音頻文件暫停,MPRemoteCommandCenter控制中心暫停按鈕也不會更新
從應用程序我開始播放更新控制中心的音頻文件以及正在播放的文件和播放按鈕更改爲暫停按鈕。現在當文件正在播放時,我選擇暫停按鈕暫停控制中心的音頻。 這是調用應用程序中的pauseCommand處理程序,並且音頻文件已暫停,但控制中心不斷更新搜索欄並且暫停按鈕不會更改爲播放按鈕。
-(void) setupRemoteControls
{
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
[commandCenter.pauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent *event) {
if ([self pauseAudioPlayback])
return MPRemoteCommandHandlerStatusSuccess;
else
return MPRemoteCommandHandlerStatusCommandFailed;
} ];
[commandCenter.playCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent *event) {
if ([self resumeAudioPlayback])
return MPRemoteCommandHandlerStatusSuccess;
else
return MPRemoteCommandHandlerStatusCommandFailed;
} ];
}
//此方法既pauseAudioPlayback & resumeAudioPlayback方法
- (void) updateRemoteControls
{
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
if (self.audioPlayer)
{
if (self.isPlaying)
commandCenter.playCommand.enabled = NO;
else if (self.isPlayPaused)
commandCenter.playCommand.enabled = YES;
}
else
[self clearNowPlayingInfo];
}
請讓我知道是否需要任何額外的信息被調用。
今天,我已經將我的iOS升級到8.4,現在當我運行相同的代碼時,現在在控制中心點擊暫停按鈕,應用程序正在接收處理程序以及控制中心中的搜索欄暫停但控制中心的暫停圖標不會變爲播放圖標。但有一個問題已經解決(尋求酒吧暫停)。這是否證實問題出現在操作系統端而不是我的代碼上,還是代碼本身至少用於更新控制中心圖標的問題。 – Dantuluri
你解決了這個問題嗎?我們應該像@pgmarchenko說的那樣停用AVAudioSession?我正在尋找解決方案,但沒有使AVAudioSession.setActive(false) –