AVPlayerViewController 不播放本地视频

Posted

技术标签:

【中文标题】AVPlayerViewController 不播放本地视频【英文标题】:AVPlayerViewController doesn't play local videos 【发布时间】:2017-01-13 12:16:27 【问题描述】:

我在我的项目中添加了一个 DemoVideo.mp4 并将其添加到复制资源文件中。但是当我运行该应用程序时,它不会播放我的视频。 这是我的方法。

private func setUpAndPlayVideo() 
        guard let videoPath = Bundle.main.path(forResource: "DemoVideo.mp4", ofType: nil) else 
            return 
        
        let videoURL = NSURL(string: videoPath)
        let player = AVPlayer(url: videoURL! as URL)
        playerViewController = AVPlayerViewController()
        playerViewController.player = player
        playerViewController.view.frame = self.videoPlayerView.bounds
        self.videoPlayerView.addSubview(playerViewController.view)
        playerViewController.showsPlaybackControls = false
        playerViewController.player?.play()

我在viewDidAppear 方法中调用了这个方法,但它显示了这个。

【问题讨论】:

请确保videoPath 是有效路径...您已检查为零。 我也检查了视频路径,视频在该目录中可用。 “/Users/MyMac/Library/Developer/CoreSimulator/Devices/7237C529-CDE9-461C-BFE0-7EAF040DFE01/data/Containers/Bundle/Application/F452FD6B-2CEF-4704-B2E6-94F9F1662CAA/AlerisX.app/DemoVideo.mp4” 是在 NSURL 中转换的吗?尝试打印videoURL! 不知道它的字符串 guard let videoPath = Bundle.main.path(forResource: "DemoVideo", ofType: .mp4) 改变这个并检查它 【参考方案1】:
 let path : String = Bundle.main.path(forResource: "charlie", ofType: "mp4")!
 let movieurl : URL = URL(fileURLWithPath: path)
 let movie : AVPlayerViewController = AVPlayerViewController()
 movie.view.frame = self.view.bounds

 let player : AVPlayer = AVPlayer(url: movieurl)
 movie.player = player

 self.view.addSubview(movie.view)
 player.play()

【讨论】:

以上是关于AVPlayerViewController 不播放本地视频的主要内容,如果未能解决你的问题,请参考以下文章

AVPlayerViewController 不按 url 播放视频

iOS - 在 AVPlayerViewController 之上添加控件

在 AVPlayerViewController 中禁用手势识别器

在 AVPlayerViewController 中点击播放按钮时执行操作

Swift AVPlayerViewController 添加 AirPlay

AVPlayerViewController 上没有“完成”按钮