Функция Swift MPMusicPlayerController ApplicationQueuePlayer skipToNextItem () вызывает очистку очереди - PullRequest
1 голос
/ 26 февраля 2020

Я работаю над приложением воспроизведения музыки c, которое показывает список песен Apple Musi c в TableView и воспроизводит их в определенном порядке, но у меня проблемы с проигрывателем очереди приложений MPMusicPlayerController. Из-за требований приложения я могу добавить только одну песню в очередь проигрывателя musi c в дополнение к текущей воспроизводимой песне. По сути, я начинаю музыку c с двух треков: один играет, а другой - следующий. Когда песня заканчивается, начинается следующая песня вверх и следующая в списке песен добавляется в очередь проигрывателя методом prepend().

Проблема, с которой я сталкиваюсь, это skipToNextItem() метод. Всякий раз, когда я пропускаю воспроизводимую в данный момент песню, я получаю следующую трассировку стека ошибок:

 Queue[22723:4355683] [SDKPlayback] -
[MPMusicPlayerController prependQueueDescriptor] completed id=applicationMusicPlayer error:
Error Domain=MPCPlayerRequestErrorDomain Code=1000 
"Failed to send command 125" 
UserInfo= { 
   NSDebugDescription=Failed to send command 125, NSUnderlyingError=0x2809fa2b0 {
             Error Domain=MPCPlayerRequestErrorDomain Code=1000 "Failed to send command 125 (MRSendCommandError = 7)" 
             UserInfo= { NSDebugDescription=Failed to send command 125 (MRSendCommandError = 7) }
            }
      }

Песня, которая появляется в следующий раз при выполнении действия пропуска, воспроизводится так, как должна. Однако, как только эта новая песня заканчивается, очередь проигрывателя становится пустой, поэтому проигрыватель действует так, как будто он достиг конца списка песен. Он приостанавливается, и любая песня, воспроизводимая при первом вызове play(), становится текущей воспроизводимой дорожкой.

Прекрасно работает возможность полностью воспроизвести песни; начинает воспроизводиться следующая песня, и песня выходит из верхней части списка для добавления в очередь. Эта проблема возникает только при пропуске трека. Я просмотрел документацию для проигрывателя musi c, а также S / O и форумов разработчиков, но безрезультатно. Любые идеи или мысли об этом поведении и / или сообщение об ошибке будет принята с благодарностью!

...