Почему MPMusicPlayerController дважды вызывает метод селектора измененного селектора для воспроизводимого элемента? - PullRequest
2 голосов
/ 11 августа 2011

Я пишу приложение для редактирования музыкального плейлиста для iPhone.

Я подписываюсь на MPMusicPlayerController MPMusicPlayerControllerNowPlayingItemDidChangeNotification и я возникает проблема, когда @selector метод для этого уведомления вызывается более одного раза при изменении nowPlayingItem:.

Я разделил каждый плейлист на свои MPMediaItemCollection объекты, и когда один плейлист закончен, я загружаю следующий, вызывая -pause на проигрывателе, передавая новый MPMediaItemCollection на контроллер музыкального проигрывателя через его -setQueueWithItemCollection: метод. Затем я явно устанавливаю nowPlayingItem на свой собственный элемент и, наконец, вызываю -play.

        [musicPlayer pause];
        [musicPlayer setQueueWithItemCollection:[MPMediaItemCollection collectionWithItems:[selectedPrefs mediaItems]]];
        musicPlayer.nowPlayingItem = [selectedPrefs.playbackItems objectAtIndex:selectedPrefs.nowPlayingIndex];
        [musicPlayer play];

Когда я делаю это, @selector вызывается дважды для изменения элемента, который сейчас воспроизводится. Я подозреваю, что это связано с тем, что -setQueueWithItemCollection: автоматически изменяет воспроизводимый элемент, чтобы он указывал на первый элемент мультимедиа в новой коллекции, а затем я снова изменяю этот элемент перед вызовом -play.

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...