我正在使用Xcode 7.2上的Swift构建应用程序
我在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()
}
我可以在模拟器中运行应用程序时播放此视频,但它无法在真实设备上运行。我在这里缺少什么?
答案 0 :(得分:1)
我可能读错了,但您似乎正在使用计算机上的文件?
答案 1 :(得分:1)
感谢所有提示。我创造了这些:
let path = NSBundle.mainBundle().pathForResource("video", ofType:"m4v")
并在按钮操作中调用它们:
@IBAction func playButtonPressed(sender: AnyObject) {
playerView = AVPlayer(URL: NSURL(fileURLWithPath: path!))
playerViewController.player = playerView
self.presentViewController(playerViewController, animated: true){
self.playerViewController.player?.play()}}
它工作!!
谢谢!
答案 2 :(得分:0)
因为您使用的路径来自模拟器,所以它在真实设备上发生了变化。 如果您将此文件添加到项目中,则可以通过以下方式获取此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!
}
答案 3 :(得分:-1)
问题可能是iPhone上的文件名区分大小写,但模拟器中没有?