3

在我的游乐场:

import Cocoa
import Foundation
import AVFoundation

var path2 = "/Users/me/Movies/bukesiyi.mp4"
var video2 = NSURL(fileURLWithPath: path2, isDirectory: false)
// it shows: file:///Users/me/Movies/bukesiyi.mp4
video2.checkResourceIsReachableAndReturnError(nil)
// it's true
var asset = AVURLAsset(URL: video2)
// it shows: <AVURLAsset: 0x7fc0a9f13500, URL = file:///Users/me/Movies/bukesiyi.mp4>
asset.tracksWithMediaType(AVMediaTypeVideo)
// it's []
asset.readable
// it's false
asset.playable
// it's false
asset.commonMetadata
// it's []

我不知道出了什么问题,也许是路径?文档不清楚。

4

1 回答 1

3

它不起作用,因为 Playgrounds 是沙盒的。

虽然您可以使用 看到您的文件 URL .checkResourceIsReachableAndReturnError,但您实际上无法从 Playground 访问文件系统。

解决方案是将文件嵌入 Playground 本身。

打开文件导航器(使用菜单或 CMD+1),然后MP4 文件放到导航器的资源文件夹中。

完成后,您可以使用NSBundle- 甚至只是将文件从导航器拖放到 Playground 来访问文件:

let video2 = #

并将文件放在我放置# 的位置,它将粘贴一个实际上是文件 URL 的图标。

现在此 URL 将与您的代码一起使用。

在此处输入图像描述

于 2016-01-05T16:53:37.140 回答