使用 Avplayer/kit 问题播放本地视频

Posted

技术标签:

【中文标题】使用 Avplayer/kit 问题播放本地视频【英文标题】:Playing Local video with Avplayer/kit Issue 【发布时间】:2017-02-21 20:57:59 【问题描述】:

每当我运行该项目时,它都会打开视频播放器,但无法播放视频 。 我该如何解决?如果图片中的代码不够清晰,代码如下:

import UIKit
import AVKit
import AVFoundation


class ViewController: UIViewController 

    let avPlayerViewController = AVPlayerViewController()
    var avPlayer:AVPlayer?

    override func viewDidLoad() 
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from nib.

        let urlPathString = Bundle.main.path(forResource: "small", ofType: "mp4")

        if urlPathString != nil 

            let movieUrl = NSURL(fileURLWithPath: "/Users/kevingerman/Desktop/Pioneer News Season 2 Episode 1.mp4")

            self.avPlayer = AVPlayer(url: movieUrl as URL)
            self.avPlayerViewController.player = self.avPlayer

        
    



    override func didReceiveMemoryWarning() 
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    


    @IBAction func playButtonTapped(_ sender: AnyObject) 
        //Trigger the video to play
        self.present(self.avPlayerViewController, animated: true)  () -> Void in self.avPlayerViewController.player?.play()    


    

【问题讨论】:

电影文件是否包含在您的项目中?打开 Project Navigator (cmd - 1) 然后选择你的项目根目录 > 你的 Target > Build Phases > Copy Bundle Resources。您的视频必须在此处。如果不是,那么您应该使用加号按钮添加它 为什么要检查字符串urlPathString 是否为零,然后为AVPlayer 添加另一个URL? 【参考方案1】:

评论中建议的解决方案和@Guan 回答的解决方案都是正确的。

你的urlPathString在这里实际上是零,

让它发挥作用-

1- 按照评论和上述答案中的建议添加目标会员资格,或者

执行以下操作

1.1- 从包中删除 small.mp4,确保你move it to trash

2.1 - 去垃圾箱并再次将你的 mp4 文件拖放到项目中,你会得到一个像这样的窗口 -

添加回来的时候确保你 -

选中 projectTarget 复选框,如下图所示 -

确保文件名为 small.mp4

【讨论】:

【参考方案2】:

确保您的 urlPathString 不为零。 我不知道下面的代码是什么意思:

let movieUrl = NSURL(fileURLWithPath: "/Users/kevingerman/Desktop/Pioneer News Season 2 Episode 1.mp4")

我认为模拟器无法获取你的mac中的文件路径。(我不确定,我以前没有这样做过)。 您可以检查文件的目标成员资格。

代码可能是这样工作的:

var urlPaht = Bundle.main.url(forResource: "small", withExtension:"mp4")
if urlPaht == nil 
        urlPaht = NSURL(fileURLWithPath: "/Users/kevingerman/Desktop/Pioneer News Season 2 Episode 1.mp4")

self.avPlayer = AVPlayer(url: movieUrl as URL)
self.avPlayerViewController.player = self.avPlayer

【讨论】:

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

手机本地视频怎么突然不能看了

vivo手机怎么播放本地视频?

iOS 本地视频和网络视频流播放

2018-05-20 安卓使用vlc播放本地视频

使用 AVPlayer 播放本地视频

iOS音视频播放