2013-08-28 2 views
1

Это похоже на что-то действительно основное, но как я могу выполнить функцию, когда песня заканчивается? Я играю один элемент вовремя, и когда он заканчивается (или, если возможно, за 10 секунд до его окончания), я хотел бы назвать функцию, которая получает следующую песню из веб-службы.Определить, когда песня перестает играть

I думаю это обрабатывается в уведомлении MPMusicPlayerControllerPlaybackStateDidChangeNotification, но я не уверен. Для записи это уведомление должно быть только тогда, когда песня заканчивается (не останавливается).

Все у меня есть это, что функция для наблюдателя выше:

- (void) handle_PlaybackStateChanged: (id) notification 
{ 
    MPMusicPlaybackState playbackState = [musicPlayer playbackState]; 
} 

Как узнать, есть ли песня закончилась? Кроме того, возможно ли создать наблюдателя/функцию, если на песню осталось 10 секунд?

ответ

2

Когда вы получаете уведомление, вы можете найти playbackState свойство MPMusicPlayerController.

Что касается выполнения функции за 10 секунд до окончания песни, вы можете настроить таймер для выполнения в будущем в зависимости от длины песни минус 10 секунд, вам нужно будет отменить этот таймер, если пользователь изменит playbackState или выбирает другую песню.

+0

Будет ли «MPMusicPlaybackStateStopped» указать, что песня закончена? То есть, если мое приложение не имеет кнопки остановки, это не будет вызвано каким-либо другим способом? –

+0

@johnhannigan Да. – fumoboy007

Смежные вопросы