Я пытаюсь создать небольшое радио-приложение, и у меня есть список 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
должен иметь тот же «композитор», что и элементы, которые он заменяет: что такое композитор?
Я вижу, что между первыми двумя потоками и третьим (в приведенном выше примере) отличается расширение файла.
Будем весьма благодарны за любые предложения о поиске.