从Gallery Asset中检索AVPlayerItem

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Gallery Asset中检索AVPlayerItem相关的知识,希望对你有一定的参考价值。

我正在尝试使用AVPlayerAVPlayerItem播放视频。

我使用以下代码:

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的主要内容,如果未能解决你的问题,请参考以下文章

AVPlayer根据URL获取任意时间的图片

AVPlayer根据URL获取任意时间的图片

AVPlayer根据URL获取任意时间的图片

AVplayer 不播放 iPhone 库中的视频

iOS AVPlayer 变慢

屏幕加载时AVPLayer显示黑屏