2

正如 Apple 在iOS 9.3中所说,我们可以访问 Apple Music Library。我正在通过我的应用程序播放它MPMusicPlayerController

我得到错误的播放状态。对于前。如果歌曲继续播放 - 所以它应该返回状态MPMusicPlaybackStatePlaying但获取其他枚举值。我的代码是

 if ([[MPMusicPlayerController systemMusicPlayer] playbackState]==MPMusicPlaybackStatePlaying)
            {
            }
            else
            {
 NSLog(@"playbackState %ld",(long)[[MPMusicPlayerController systemMusicPlayer] playbackState]);
             }

正如苹果在这里所说,我们有以下可能的价值 -

Values for the playbackState property.
Declaration

Objective-C

enum {
   MPMusicPlaybackStateStopped,
   MPMusicPlaybackStatePlaying,
   MPMusicPlaybackStatePaused,
   MPMusicPlaybackStateInterrupted,
   MPMusicPlaybackStateSeekingForward,
   MPMusicPlaybackStateSeekingBackward 
};
typedef NSInteger MPMusicPlaybackState;

我将如何获得当前播放歌曲的正确状态。任何想法,如果我弄错了什么,请告诉我。谢谢

4

2 回答 2

1

这很疯狂,但这有效:

_ = systemMusicPlayer.currentPlaybackRate        
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in
    print(self?.systemMusicPlayer.playbackState)
}
于 2018-06-24T18:14:48.823 回答
0

我也遇到过这个问题。所以解决方法是:每隔 n 秒检查一次[[MPMusicPlayerController systemMusicPlayer] currentPlaybackRate]属性。1 对应于“播放”,0 对应于“暂停”(或停止)。

于 2016-04-14T16:47:02.400 回答