2

ライブラリから音楽を再生する MPMusicPlayerController を実装しました。アプリがバックグラウンドに入ったら一時停止し、フォアグラウンドに戻ったら再開したい。うまく一時停止しますが、最初から始まります。コードはこちら...

AppDelegate.m

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [self.appMusicPlayer pause];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [self.appMusicPlayer play];
}

MainViewController.m

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection 
{
    [self dismissModalViewControllerAnimated: YES];
   appdelegate.selectedSongCollection=mediaItemCollection; 
    appdelegate.appMusicPlayer = [MPMusicPlayerController applicationMusicPlayer];

    [appdelegate.appMusicPlayer setQueueWithItemCollection:appdelegate.selectedSongCollection];
    [appdelegate.appMusicPlayer play];
    [btnStop setHidden:NO];
    [btnMusic setHidden:YES];
}

- (void) mediaPickerDidCancel: (MPMediaPickerController *) mediaPicker 
{   
    [self dismissModalViewControllerAnimated: YES]; 
}

アプリがフォアグラウンドに入ったときに再開する方法についてのアイデアはありますか?

4

1 に答える 1

2

トラックの currentPlaybackTime を調べます。MPMusicPlayerController には currentPlaybackTime プロパティがあります。アプリがバックグラウンドに入るときは、この値を保存するだけです (プロパティは問題なく動作するはずです)。WillEnterForeground で、同じプロパティの値を使用して、再開時に currentPlaybackTime を設定します。

于 2012-04-09T00:03:45.643 に答える