2

我正在 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

4 回答 4

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()}}

它有效!

谢谢!

于 2015-12-14T18:47:37.217 回答
1

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

于 2015-12-14T11:11:17.160 回答
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!

}
于 2015-12-14T11:10:36.833 回答
-1

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

于 2015-12-14T11:07:42.250 回答