草庐IT

ios - 在 Swift 4/Xcode 9 : AVF context unavailable for sharedAudioPresentationContext 中从 url 播放视频文件

coder 2023-09-11 原文

我正在尝试实现一个从 url 加载和播放视频的 AVPlayer。这被放置在一个由按钮调用的函数中。这是我当前的代码:

import UIKit
import AVKit
import AVFoundation

class MovieDetailViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func playTrailer(_ sender: Any) {
        guard let videoURL = URL(string: "http://caribbeancinemas.com/img/trailers/6134.mp4") else {
            return
        }

        let player = AVPlayer(url: videoURL)
        let controller = AVPlayerViewController()
        controller.player = player

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

当我在模拟器上运行该应用程序时,视频确实可以播放,但出现了两个问题:

  1. 我在控制台中收到以下错误消息:

    2018-03-31 16:49:53.389148-0400 MoviesApp[18928:3137301] [MediaRemote] [AVOutputContext] WARNING: AVF context unavailable for sharedAudioPresentationContext 2018-03-31 16:49:53.497987-0400 MoviesApp[18928:3137301] [framework] CUICatalog: Invalid asset name supplied: '(null)' 2018-03-31 16:49:53.498937-0400 MoviesApp[18928:3137301] [framework] CUICatalog: Invalid asset name supplied: '(null)' 2018-03-31 16:49:53.857871-0400 MoviesApp[18928:3138058] Task <223C4724-B3B5-4EBE-9AE0-5BA3C30B37C6>.<2> finished with error - code: -999 2018-03-31 16:49:55.365686-0400 MoviesApp[18928:3138196] Task <95E91605-9B52-4212-97B3-47E73CE21B8B>.<1> finished with error - code: -999

  2. 视频播放器不会立即开始播放视频(缓冲),而是似乎要等到下载完整个视频后再播放。

我在这里寻找解决方案,但还没有找到任何帮助。

提前致谢!

最佳答案

@IBAction func playTrailer(_ sender: Any) {
        guard let videoURL = URL(string: "http://caribbeancinemas.com/img/trailers/6134.mp4") else {
            return
        }

        let videoAsset = AVURLAsset(url: videoURL! as URL)
        let item = AVPlayerItem(asset: videoAsset)
        let player = AVPlayer(playerItem: item)
        let controller = AVPlayerViewController()
        controller.player = player

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

关于ios - 在 Swift 4/Xcode 9 : AVF context unavailable for sharedAudioPresentationContext 中从 url 播放视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49592567/

有关ios - 在 Swift 4/Xcode 9 : AVF context unavailable for sharedAudioPresentationContext 中从 url 播放视频文件的更多相关文章

随机推荐