Изменился ли MPMusicPlayerController с iOS 5?

У меня было приложение, которое корректно работало в iOS 4.3, после обновления до iOS 5 оно ведет себя по-другому.
После выполнения этих строк в iOS 4.3 mp.playbackState устанавливается в MPMusicPlaybackStatePaused, однако в iOS 5 по-прежнему устанавливается в MPMusicPlaybackStatePlaying .

MPMusicPlayerController *mp = [MPMusicPlayerController applicationMusicPlayer];
if(mp.playbackState == MPMusicPlaybackStatePlaying)
    [mp pause];

Я предполагаю, что playState не обновляется в том же цикле событий, это нормально?


person OtoLeo    schedule 13.01.2012    source источник
comment
Мне пришлось сделать аналогичный обходной путь, описанный [здесь] [1] [1]: stackoverflow.com/questions/10118726/   -  person matbur    schedule 13.04.2012


Ответы (1)


Я думаю, что проблема в следующем:

MPMusicPlaybackState playbackState = [musicPlayer playbackState];

в iOS5 не всегда правильно.

Эта работа для меня:

if (!isPlay) 
{    
   isPlay = TRUE;
   [appPlayer play];
}
else 
{
   isPlay = FALSE;
   [appPlayer pause];
}
person Fernando Alonso Pecina    schedule 16.01.2012
comment
Мне пришлось сделать что-то подобное, потому что я не мог найти другого решения. - person OtoLeo; 17.01.2012
comment
У меня такая же проблема, это баг? Ребята, вы иногда видите NULL как .playbackState? - person SimplyKiwi; 29.01.2012
comment
Нет, я никогда не видел NULL. В конце концов я использовал MPMusicPlayerControllerPlaybackStateDidChangeNotification, потому что там я получил правильное состояние воспроизведения. - person OtoLeo; 30.01.2012
comment
Эти ошибки в iOS SDK — такие траты времени, наша жизнь поглощена небрежностью и нежеланием Apple исправлять свои собственные ошибки. - person AsyncMoksha; 19.10.2014