【问题标题】:Playing Local video with Avplayer/kit Issue使用 Avplayer/kit 问题播放本地视频
【发布时间】: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?

标签: ios swift xcode avplayer


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 2018-08-21
      相关资源
      最近更新 更多