iPhone模拟器播放video,真正的设备不会

我正在Xcode 7.2上的Swift中构build一个应用程序

我添加了一个video到我的ViewController。 代码如下:

import UIKit import AVKit import AVFoundation class GymViewController: UIViewController { var playerViewController = AVPlayerViewController() var playerView = AVPlayer() let fileFemaleURL = NSURL(fileURLWithPath:"/Users/marienkoen/Documents/AppDevelopment/ROZsport/ROZsport/GymFemale-2434.m4v") override func viewDidLoad() { super.viewDidLoad() } @IBAction func playButtonPressed(sender: AnyObject) { playerView = AVPlayer(URL: fileFemaleURL) playerViewController.player = playerView self.presentViewController(playerViewController, animated: true){ self.playerViewController.player?.play() } 

在模拟器中运行应用程序时,我可以播放此video,但在真实设备上无法运行。 我在这里错过了什么?

我可能会读这个错误,但你似乎正在使用位于您的计算机上的文件?

感谢所有的提示。 我创造了这些:

 let path = NSBundle.mainBundle().pathForResource("video", ofType:"m4v") 

并在button动作中调用它们:

 @IBAction func playButtonPressed(sender: AnyObject) { playerView = AVPlayer(URL: NSURL(fileURLWithPath: path!)) playerViewController.player = playerView self.presentViewController(playerViewController, animated: true){ self.playerViewController.player?.play()}} 

它的工作原理!

谢谢!

因为你使用的path来自模拟器,所以在真实的设备上它改变了。 如果您将此文件添加到您的项目中,则可以通过以下方式获取此URL:

 func getDocumentsURL() -> NSURL { let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] return documentsURL } func fileInDocumentsDirectory(filename: String) -> String { let fileURL = getDocumentsURL().URLByAppendingPathComponent(filename) return fileURL.path! } 

也许问题是iPhone上的文件名是区分大小写的,但不是在模拟器中?