Отслеживание положения наполовину воспроизведенного медиафайла на iPhone/iPad

Я хотел бы отслеживать последнюю позицию элемента мультимедиа (песни или подкаста). Я могу получить доступ к общей продолжительности, используя свойство MPMediaItemPropertyPlaybackDuration объекта MPMediaItem. Меня интересует способ хранения и отслеживания последней сыгранной позиции.

Каждый игрок делает это самостоятельно? Получу ли я его бесплатно, если буду просто воспроизводить объекты с помощью MediaPlayer?

Я еще не подключил медиаплеер для воспроизведения элементов, я хотел бы понять, нужно ли мне реализовать свой собственный метод закладок.


person ferhan    schedule 10.03.2012    source источник


Ответы (1)


[audioPlayer currentPlaybackTime]  

Даст вам текущее время воспроизведения. У меня есть функция возобновления в проигрывателе подкастов, и я просто слежу за прерываниями с помощью:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playPlaybackStateChanged:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:self.audioPlayer];

а затем внутри этой функции обратного вызова проверьте состояние:

 if(self.audioPlayer.playbackState == MPMoviePlaybackStateInterrupted)

и записывать время воспроизведения при прерывании...

person Jayson Lane    schedule 10.03.2012
comment
Спасибо. Хорошие ссылки. Должен ли я сохранять текущее время воспроизведения дорожки в своем собственном хранилище, если дорожка изменится до завершения? Я хочу иметь возможность вспомнить, где это было оставлено позже. Не уверен, что currentPlaybackTime каким-то образом сохраняется или мне нужно это сделать. - person ferhan; 11.03.2012
comment
Я сохраняю его с помощью NSUserDefaults - person Jayson Lane; 11.03.2012
comment
Спасибо... сэкономил мне время. - person ferhan; 11.03.2012
comment
По умолчанию он не сохраняется (насколько мне известно) - person Jayson Lane; 11.03.2012
comment
Вы можете увидеть, как собственный медиаплеер Apple скачет во время воспроизведения, если вы переключаетесь между двумя воспроизводимыми треками. Сначала он помещает указатель в начало, а затем переходит к позиции. Так что я догадывался, что он, вероятно, делал что-то подобное, но не хотел предполагать. - person ferhan; 11.03.2012
comment
Если это ответило на ваш вопрос, пожалуйста, не забудьте принять его :) - person Jayson Lane; 11.03.2012