Кажется, что это проблема с iOS 11, с которой некоторые люди сталкивались при установке currentPlaybackTime
после вызова play()
. На этом форуме разработчиков Apple была опубликована работа, , но, пожалуйста, найдите код ниже (спасибо RunLoop).
Я только что столкнулся с этой проблемой. Мне удалось обойти это
со следующим кодом.
Создает фоновый поток, который постоянно проверяет
currentPlaybackTime
игрока. Как только currentPlaybackTime
не время, когда я установил его, я установил currentPlaybackTime
обратно в
что я хотел.
Это похоже на ужасный взлом, но пока у меня работает.
MPMusicPlayerController *player = [MPMusicPlayerController systemMusicPlayer];
player.currentPlaybackTime = _startTime;
[player play];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0ul);
dispatch_async(queue, ^{
while(true) {
if (player.currentPlaybackTime != _startTime) {
player.currentPlaybackTime = _startTime;
break;
}
}
});