В чем преимущество загрузки AVPlayerItem с AVURLAsset по сравнению с URL - PullRequest
3 голосов
/ 26 марта 2012

Как гласит заголовок, в чем преимущество одного, другого?

С активом:

MPMediaItem *song = [self.itemCollection objectAtIndex:self.currentIndex];
NSURL *songURL = [song valueForProperty:MPMediaItemPropertyAssetURL];
AVAsset *asset = [AVURLAsset URLAssetWithURL:songURL options:nil];
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:asset];
[self.myPlayer replaceCurrentItemWithPlayerItem:item];

С URL:

MPMediaItem *song = [self.itemCollection objectAtIndex:self.currentIndex];
NSURL *songURL = [song valueForProperty:MPMediaItemPropertyAssetURL];
AVPlayerItem *item = [AVPlayerItem playerItemWithURL:songURL];
[self.myPlayer replaceCurrentItemWithPlayerItem:item];

Обновление

Точно, после некоторой игры, я заметил следующее:

При использовании предыдущего метода (актива) существует одна проблема с событиями удаленного управления: 1. Заблокируйте экран и дождитесь воспроизведения следующей песни. 2. Когда начнется следующая песня, дважды нажмите кнопку «Домой», чтобы вызвать элементы управления. 3. Нажмите пауза: ничего не происходит. 4. Нажмите пауза еще раз: музыка приостановлена.

Теперь на самом деле нет проблем с событиями дистанционного управления, потому что он вызывается с первой попытки. Это приостанавливает музыку (то есть [self.myPlayer pause]), которая не работает - пока вы не попробуете ее снова.

Понятия не имею, почему это так, но для меня это причина, по которой я должен использовать URL-метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...