从Gallery Asset中检索AVPlayerItem
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Gallery Asset中检索AVPlayerItem相关的知识,希望对你有一定的参考价值。
我正在尝试使用AVPlayer
和AVPlayerItem
播放视频。
我使用以下代码:
asset = AVAsset.FromUrl(new NSUrl(GalleryURL));
playerItem = new AVPlayerItem(asset);
playerItem.AddObserver(this, (NSString)"status", NSKeyValueObservingOptions.OldNew, IntPtr.Zero);
player = new AVPlayer(playerItem);
该酒店GalleryURL
是以下之一:
1.)将视频保存到图库时,我从ALAssetsLibrary实例调用中获取此URL:WriteVideoToSavedPhotosAlbum(url, (galleryPath, error) => { ... });
其中“galleryPath”是这样的:
file:///var/mobile/Containers/Data/Application/0D510365-4A63-425B-840C-A4E18BD870A8/Documents/...
这很好用,我可以创建AVAsset并通过添加的Observer检索AVPlayerItemStatus,尤其是状态“ReadyToPlay”。
2.)然而,当我从图库中检索视频时,网址看起来不同:
assets-library://asset/asset.MOV?id=EB9FC214...
在这种情况下,我无法检索工作的AVAsset
我如何才能获得第2部分来创建一个可以用于视频播放的工作AVAsset?我相信这适用于ios 11之前的iOS版本。
答案
Landu Lu - MSFT帮助我找到答案:
他告诉我,我从UIImagePickerController收到了两条路径:
无法使用资产库路径,也许我必须删除“assets-library:”部分?但是可以使用以“file://”开头的路径。插件的问题是,url的开头被切断,开头没有“file://”。我手动添加这个字符串,它的工作原理!非常感谢!
以上是关于从Gallery Asset中检索AVPlayerItem的主要内容,如果未能解决你的问题,请参考以下文章