objective-c - 奇怪的情况后 iPodMusicPlayer 播放状态不准确

标签 objective-c audio playback ipod mpmusicplayercontroller

我有一个简单的音乐播放器应用程序,但遇到了一个非常奇怪的问题。首先,在播放音乐并处于锁定状态时,我允许用户双击 Home 按钮并使用锁定的 iPod 音乐控件。但我确实注意到,在锁定状态下,我的应用程序不会收到任何已注册的通知。在大多数情况下,无论如何这都很好。但是,如果用户在锁定状态下播放音乐至少 15 分钟(我不知道为什么,但只要少于 15 分钟,就不会出现此问题),并使用某种耳机或辅助插孔,然后拔下当设备仍在播放音乐时,将耳机/辅助插孔插入 iPodMusicPlayer 将自动暂停。这正是我希望它做的,但是发生这种情况后,当用户解锁设备并再次将焦点集中到应用程序时,iPodMusicPlayer 的playbackState 不准确。

- (IBAction)playPause:(id)sender {
     if ([musicPlayer playbackState] == MPMusicPlaybackStatePlaying) {
         [musicPlayer pause];    
     } else {
         [musicPlayer play];
     }
 }

其中 musicPlayer = [MPMusicPlayerController iPodMusicPlayer]

在正常情况下,这运行得很好。但在这些条件之后,我的断点将在音乐暂停时达到 MPMusicPlaybackStatePlaying 的条件,反之亦然。我能够解决此问题的唯一方法是选择新的音乐或终止应用程序并重新打开。我已经尝试了大量的变通方法来以编程方式解决这个问题,但没有任何一个能够实现 100% 无错误的修复。有谁知道为什么会发生这种情况?

最佳答案

您还可以尝试此解决方法:

 - (IBAction)playPause:(id)sender {
      if ([musicPlayer playbackState] == MPMusicPlaybackStatePlaying) {
          [musicPlayer play];    
          [musicPlayer pause];    
      } else {
          [musicPlayer pause];
          [musicPlayer play];
      }
  }

关于objective-c - 奇怪的情况后 iPodMusicPlayer 播放状态不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8514546/

相关文章:

jquery - 如何使用另一个在线mp3资源更改<audio>标签中的src attr并重新加载它

c# - 如何更改C#MediaElement的音频频率

c++ - 在 C++ 中连续流式传输 PCM 数据?

javascript - 检测有关音频/视频play()命令的当前上下文

objective-c - XCode 4 存档/IPA 错误 : "The operation couldn’ t be completed. 没有这样的文件或目录”

iphone - NSMutableArray 到字节数组到字符串

iphone - 如何将 UIView(例如 UIImageView)拖放到 iPhone/iPad 表格中的单元格

iphone - Integer 和 NSDecimalNumber 的基本数学问题 - 二进制操作数无效

javascript - 音频播放后重置按钮文本

ios - 做一个音乐播放器应用程序!上一轨道和下一轨道