Я хочу, чтобы экземпляр MPMusicPlayerController.applicationMusicPlayer() начинал воспроизведение с определенного времени начала:
applicationMusicPlayer.setQueueWithStoreIDs([String(track.id)])
applicationMusicPlayer.currentPlaybackTime = 10.0
print(applicationMusicPlayer.currentPlaybackTime) // will print 10.0
Но как только игрок начнет воспроизводить элемент, его currentPlaybackTime обнулится и начнется сначала:
applicationMusicPlayer.play()
print(applicationMusicPlayer.currentPlaybackTime) // will print 0.0
Я подумал, может быть, это потому, что я установил воспроизведение на только что созданный проигрыватель, который еще не готов, но ни .prepareToPlay(), ни .isPreparedToPlay() не помогают мне в этой ситуации.
Я даже пытался подождать несколько секунд и только потом запускать воспроизведение с той позиции, которую выставил. Никакого успеха, крайнее разочарование.
Может быть, это как-то связано с тем, что я проигрываю песни напрямую из Apple Music? Я не могу переключиться на AVPlayer, потому что мне нужно воспроизводить музыку из Apple Music.
Буду признателен за любые мысли и помощь!
ОБНОВЛЕНИЕ: я нашел метод beginSeekingBackward в MPMediaPlayback, и он говорит, что если контент передается в потоковом режиме, он не будет иметь никакого эффекта: https://developer.apple.com/document/mediaplayer/mpmediaplayback/1616248-beginseekingbackward?language=objc Похоже на только встроенное приложение «Музыка» имеет контроль над потоковым воспроизведением музыки?
let player = MPMusicPlayerController.applicationMusicPlayer() player.setQueueWithStoreIDs(["some store id"]) player.play() player.currentPlaybackTime = 120 debugPrint(player.currentPlaybackTime) //prints 120
и продолжает воспроизведение с этого места.let player = MPMusicPlayerController.applicationMusicPlayer() player.setQueueWithStoreIDs(["some id"]) player.play() player.pause() player.currentPlaybackTime = 120 player.play() debugPrint(player.currentPlaybackTime) //prints 0 and starts the song from the beginning
- person helkarli   schedule 28.08.2017