Как внедрить услугу HLS для радиопередачи в режиме реального времени в Swift - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь создать службу потоковой передачи по радио, используя AVPlayer.

URL-адрес, который у меня есть,

http://player.absoluteradio.co.uk/tunein.php?i=a664.aac

Однако AVPlayer не воспроизводит его ... Я знаю, что URL-адрес не обеспечивает потоковую передачу звука, но возвращает воспроизводимый URL-адрес в течение первогозаголовок ответа.Я думал, что AVPlayer либо обработает запрос, либо позволит мне перехватить заголовки, но это не так.

Кто-нибудь знает, как этого добиться?

1 Ответ

0 голосов
/ 15 октября 2018

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

Мой первый подход состоял в инициализации AVPlayerи установить делегат загрузчика ресурсов AVURLAsset, но, поскольку зарезервированная / стандартная схема URL не вызывает делегат, я попал в тупик ...

Во-вторых, и после реализации AVPlayer вот так:

class ViewController: UIViewController, AVAssetResourceLoaderDelegate {

    let urlFile = URL(string:"http://player.absoluteradio.co.uk/tunein.php?i=a664.aac")!

    private var avPlayer:AVPlayer!
    private var avAudioSession:AVAudioSession = AVAudioSession.sharedInstance()

    override func viewDidLoad() {
        super.viewDidLoad()

        try! avAudioSession.setCategory(.playback, mode: .default, options: [])
        try! avAudioSession.setActive(true)

        let audioURLAsset = AVURLAsset(url: urlFile)
        //audioURLAsset.resourceLoader.setDelegate(self, queue:DispatchQueue.init(label: "MY QUEUE"))
        avPlayer = AVPlayer(playerItem: AVPlayerItem(asset: audioURLAsset))

        avPlayer.play()

    }

}

Я разрешил Произвольные загрузки в моем info.plist

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

И это сработало!

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