1

そこで、iPodの音楽ライブラリを使った音楽ゲームを開発しようとしています。ユーザーはプロンプトに基づいて曲を選びます。私はを使用しているので[MPMusicPlayerController iPodMusicPlayer]、ユーザーがiPodアプリに戻る前に曲を変更した可能性があります。その場合は、を呼び出して[musicPlayer stop]ください。残念ながら、現在再生中の曲を保存して、アプリがバックグラウンドから戻ったときに現在再生中の曲と照合する方法がわかりません。以下のコードを確認してください。

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSString *persistantID = [musicPlayer.nowPlayingItem valueForProperty:MPMediaItemPropertyPersistentID];
    [prefs setValue:persistantID forKey:@"NOWPLAYING_ID"];

}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    NSString *persistantID = [prefs stringForKey:@"NOWPLAYING_ID"];
    if (persistantID == [musicPlayer.nowPlayingItem valueForProperty:MPMediaItemPropertyPersistentID]) {
    }
    else {
        [musicPlayer stop];
    }
    [prefs setValue:nil forKey:@"NOWPLAYING_ID"];

}

誰か私に手を貸してもらえますか?本当にありがとう。

4

1 に答える 1

2
- (void)applicationWillResignActive:(UIApplication *)application    {
    self.mediaItemSavedWhenAppSuspended = [musicPlayer nowPlayingItem];
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    MPMediaItem *nowPlayingItem = [musicPlayer nowPlayingItem];
    NSNumber *playingItem = [nowPlayingItem valueForProperty:MPMediaItemPropertyPersistentID];
    NSNumber *previousItem = [self.mediaItemSavedWhenAppSuspended valueForProperty:MPMediaItemPropertyPersistentID];

    if( [playingItem compare:previousItem] == NSOrderedSame )   {   //  same track still playing
   }
于 2011-06-21T01:11:01.047 に答える