我正在研究查看用户视频并通过采用 URL 的 AVPlayerItem 将它们传递给 AVPlayer 的代码。
要获取 iOS 设备上的所有视频,您可以执行以下操作:
let videoNumber = MPMediaType.anyVideo.rawValue
let predicate = MPMediaPropertyPredicate.init(value: videoNumber, forProperty: MPMediaItemPropertyMediaType)
let query = MPMediaQuery.init()
query.addFilterPredicate(predicate)
if let items = query.items
{
mediaCollection = MPMediaItemCollection(items: items)
// -1 would indicate an error condition
print("number of items in collection is \(mediaCollection?.count ?? -1)")
}
当您从数组中选择要使用的 MPMediaItem 时items
,应该有一个assetURL
可以使用的选项。
麻烦的是,在我的设备上,我的所有assetURL
属性都是 NULL。巧合的是,虽然hasProtectedAsset
这些项目中false
的isCloudItem
每一个都是 ,但这些项目中的每一个都是true
。
我怎样才能想出一个assetURL
可以传递给任何媒体播放器的有效信息?开发人员无法在用户的 iPod 库中获得正确的引用和访问媒体的感觉有点虚假。