Как гласит заголовок, в чем преимущество одного, другого?
С активом:
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-метод.