AVPlayer как управлять разными URL - PullRequest
2 голосов
/ 14 марта 2012

Я пытаюсь создать небольшое радио-приложение, и у меня есть список URL-адресов, которые я передаю AVPlayer, но не могу понять, как управлять другим URL-адресом.

Например, если я впервые воспроизведу этот URL: http://www.example.com/file.mp3 тогда я звоню http://www.example.net/file2.mp3 он работает нормально, но когда я выбираю http://www.example.org/file.mp3.m3u, он не загружает этот URL, и AVPlayer не будет воспроизводиться.

Это код, который я использую:

urlStream = [NSURL URLWithString:mp3URL];  
appDelegate = [[UIApplication sharedApplication]delegate];    
playerItem = [AVPlayerItem playerItemWithURL:urlStream];
playerItem addObserver:self forKeyPath:@"playbackBufferEmpty" options:NSKeyValueObservingOptionNew context:nil];
[playerItem addObserver:self forKeyPath:@"playbackLikelyToKeepUp" options:NSKeyValueObservingOptionNew context:nil];
[appDelegate.player replaceCurrentItemWithPlayerItem:playerItem];

Я использую replaceCurrentItemWithPlayerItem:playerItem, потому что если я использую initWithPlayerItem, когда я выбираю другой поток, я просто не могу остановить предыдущее воспроизведение: так что единственный способ остановить воспроизведение и начать другой - это использовать replaceCurrentItemWithPlayerItem.

В документации Apple я читал, что replaceCurrentItemWithPlayerItem должен иметь тот же «композитор», что и элементы, которые он заменяет: что такое композитор?

Я вижу, что между первыми двумя потоками и третьим (в приведенном выше примере) отличается расширение файла.

Будем весьма благодарны за любые предложения о поиске.

1 Ответ

2 голосов
/ 14 марта 2012

Похоже, проблема заключается не в замене элементов, а в формате отдельных файлов. Попробуйте сначала открыть файл m3u - возможно, он тоже не удастся.

m3u-URL указывает, что это не mp3-файл, а m3u-файл - это список URL-адресов медиа-файлов. AVPlayer и AVPlayerItem способны воспроизводить файлы m3u8 - это файлы m3u с кодировкой UTF8.

Вы пытались открыть эти URL-адреса в Mobile Safari? Если они там не работают, возможно, формат AVPlayer также не поддерживается.

В любом случае - если бы вы могли предоставить реальный проблемный URL, можно было бы проверить фактический формат файла.

Под «композитором» подразумевается «Кварцевый композитор» - забудьте об этом, здесь не уместно. [Редактировать: может быть, это уместно - я ошеломлен после того, как вы прокомментируете этот ответ ...]

...