Использование AVPlayer возвращает ошибку «Non-Multipath connection»

14

Я использую AVKit для воспроизведения URL YouTube.

У меня есть этот код внутри действия кнопки:

 @IBAction func trailerButtonAction(_ sender: Any) {
    guard let youtubeUrl = youtubeURL else { return }
    let player = AVPlayer(url: youtubeUrl)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player

    present(playerViewController, animated: true) {
        player.play()
    }
}

URL действителен, но когда я нажимаю кнопку, видео не перестает загружаться, и я получаю это сообщение в области отладки:

nw_endpoint_flow_copy_multipath_subflow_counts Вызывается при подключении без многолучевого распространения

Редактировать:

Я обнаружил, что AVPlayer не поддерживает YouTube URL

Алекс Гиатракис
источник
У меня такая же проблема. Видео не воспроизводится, и я получаю его в качестве вывода. Вы смогли это исправить?
Матиас Барриос
Я думаю, что это проблема: developer.apple.com/documentation/foundation/…
Матиас Барриос
хорошо, я понял. Это проблема сети. попробуйте это видео: clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
Матиас Барриос,
Теперь я не получил предыдущую ошибку. Я получаю это: NSURLConnection закончил с ошибкой - код -1002
Alex Giatrakis
Тогда это точно ваша связь. Можете ли вы попробовать из другой связи
Матиас Барриос

Ответы:

5

Я бы сказал, что этот журнал не обязательно актуален. Я получал эту ошибку при попытке воспроизведения на симуляторе, но это не происходило на реальном устройстве.

CMash
источник
1
Подтверждено. Это решило дело для меня.
krlbsk
2

Одним из обходных путей может быть использование симулятора 12.4.x, поскольку он не демонстрирует эту проблему. Только симуляторы 13.x показывают эту ошибку. Неоднократно случается так, что он замедляет работу симулятора до тех пор, пока все запрошенные треки не будут помещены в буфер.

Чтобы бороться с этим во время тестирования, я либо не включаю, AVPlayerлибо только буферизую шорт-трек.

Чтобы сократить количество ошибок, попробуйте начать AVPlayerтак:

var avPlayer : AVPlayer = AVPlayer()

Это может сократить ошибки на 30%.

StarPlayrX
источник