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];
}

アプリが再びアクティブになると、AppDelegateのapplicationDidBecomeActive:メソッドが呼び出されます。そのメソッド内で、currentPlaybackTimeプロパティを設定します。

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