iPhone模拟器播放视频,真实设备不会

时间:2015-12-14 11:04:47

标签: ios swift video avkit

我正在使用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()
}

我可以在模拟器中运行应用程序时播放此视频,但它无法在真实设备上运行。我在这里缺少什么?

4 个答案:

答案 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上的文件名区分大小写,但模拟器中没有?