1

MPMusicPlayerController独立于 iPod(或音乐)应用程序 applicationMusicPlayer运行,这正是我想要的。当应用程序进入后台时它会停止播放,这也是我想要的。

但是,我希望它在应用程序恢复时恢复播放。目前我通过再次调用 play 方法来做到这一点,但这会导致音频从头开始。有没有办法让我真正从音频中断的地方继续播放?我似乎找不到任何关于它的东西。

4

1 回答 1

4

在 App Delegate 的applicationWillResignActive:方法中,读取musicPlayer.currentPlaybackTime属性(在 MPMediaPlayback 协议中声明)并将该值存储在某处。您可以设置一个属性,例如:

@property (assign, nonatomic) NSTimeInterval playbackTime;

并将其分配给:

- (void)applicationWillResignActive:(UIApplication *)application
{
    MPMusicPlayerController *myPlayer =
    [MPMusicPlayerController applicationMusicPlayer];

    self.playbackTime = myPlayer.currentPlaybackTime;
    [myPlayer pause];
}

当应用程序即将再次激活时,applicationDidBecomeActive:将调用 App Delegate 的方法。在该方法中,设置 currentPlaybackTime 属性。

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    MPMusicPlayerController *myPlayer =
    [MPMusicPlayerController applicationMusicPlayer];
    myPlayer.currentPlaybackTime = self.playbackTime;
    [myPlayer play];
}
于 2012-10-11T13:13:21.520 回答