为什么 AVURLAsset 没有加载文件?
Why is AVURLAsset Not Loading the File?
好的。我有一种不祥的预感,这会被蟋蟀温柔的唧唧声所满足...
我基于 this and this。
我真的想知道这是否是一个功能,而不是一个错误,因为在本地加载电影然后播放可能存在安全问题。我认为情况并非如此,但也许吧。需要注意的是,加载的资源来自与服务器的 REST 交互,其中电影数据实际上只是数据查询响应的一部分。它不是直接从视频流页面加载的东西(不过它是 SSL)。
我在 AV Foundation 还很新手。
我有以下代码:
do {
// We create a path to a unique temporary file to grab the media.
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(UUID().uuidString)
// Store the media in the temp file.
try myData.write(to: url, options: .atomic)
let options = [AVURLAssetPreferPreciseDurationAndTimingKey: true]
let asset = AVURLAsset(url: url, options: options)
if 0 < asset.tracks.count {
print("YOU GET \(asset.tracks.count) TRACKS!")
} else {
print("NO TRACKS FOR YOU!")
}
} catch let error {
NSLog("Error Encoding AV Media: %@", error._domain)
}
很基础,嗯? "myData" 变量包含已下载的 MP4 电影 (.m4v)。我将其写入一个临时文件,然后使用 AVURLAsset 加载该临时文件,就像它说的那样。
问题是我永远无法播放 dangblammit 电影。文件在它应该在的地方。我可以找出临时文件,加上“.m4v”扩展名,然后在 QT 查看器中播放它。
我已经准备好接受一个耳光,然后是"ya darn eedjut!",但我想知道我应该"RTFM".
"M" ]
问题似乎出在这一行
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(UUID().uuidString)
您应该为文件添加扩展名。
let videoName = UUID().uuidString + ".mp4"
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(videoName)
希望它能修复。
好的。我有一种不祥的预感,这会被蟋蟀温柔的唧唧声所满足...
我基于 this and this。
我真的想知道这是否是一个功能,而不是一个错误,因为在本地加载电影然后播放可能存在安全问题。我认为情况并非如此,但也许吧。需要注意的是,加载的资源来自与服务器的 REST 交互,其中电影数据实际上只是数据查询响应的一部分。它不是直接从视频流页面加载的东西(不过它是 SSL)。
我在 AV Foundation 还很新手。
我有以下代码:
do {
// We create a path to a unique temporary file to grab the media.
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(UUID().uuidString)
// Store the media in the temp file.
try myData.write(to: url, options: .atomic)
let options = [AVURLAssetPreferPreciseDurationAndTimingKey: true]
let asset = AVURLAsset(url: url, options: options)
if 0 < asset.tracks.count {
print("YOU GET \(asset.tracks.count) TRACKS!")
} else {
print("NO TRACKS FOR YOU!")
}
} catch let error {
NSLog("Error Encoding AV Media: %@", error._domain)
}
很基础,嗯? "myData" 变量包含已下载的 MP4 电影 (.m4v)。我将其写入一个临时文件,然后使用 AVURLAsset 加载该临时文件,就像它说的那样。
问题是我永远无法播放 dangblammit 电影。文件在它应该在的地方。我可以找出临时文件,加上“.m4v”扩展名,然后在 QT 查看器中播放它。
我已经准备好接受一个耳光,然后是"ya darn eedjut!",但我想知道我应该"RTFM".
"M" ]问题似乎出在这一行
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(UUID().uuidString)
您应该为文件添加扩展名。
let videoName = UUID().uuidString + ".mp4"
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(videoName)
希望它能修复。