【发布时间】:2015-09-13 04:51:43
【问题描述】:
我正在开发一个处理 MPRemoteCommandCenter 类的录音应用程序。我已经设置了命令中心来播放和暂停命令。下面添加了代码 sn-p。我遇到了 pauseCommand 问题。
我从应用程序开始播放音频文件,该文件更新控制中心以及正在播放的文件并将播放按钮更改为暂停按钮。现在,当文件正在播放时,我从控制中心选择暂停按钮暂停音频。 这是在应用程序中调用 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,现在当我运行相同的代码时,现在单击控制中心上的暂停按钮,应用程序正在接收处理程序以及搜索栏控制中心正在暂停,但控制中心的暂停图标没有变为播放图标。但是已经解决了一个问题(寻求栏暂停)。这是否确认问题出在操作系统方面而不是我的代码上,还是代码本身的问题至少用于更新控制中心中的图标。
-
你解决了这个问题吗?我们应该像@pgmarchenko 所说的那样停用 AVAudioSession 吗?我一直在寻找解决方案而没有制作 AVAudioSession.setActive(false)
标签: ios objective-c