无法从AVAsset获取缩略图

问题描述

在我的Xamarin.Forms项目中,我使用依赖项注入在.iOS项目中调用一个方法,以便检索用户刚刚录制的视频的缩略图

从我的Xamarin.Forms项目调用

byte[] thumbnailBytes = DependencyService.Get<IMediaMetaData>().ReturnVidThumbnailBytes(vid.Path);

然后从.IOS项目中调用以下代码

public class MediaMetaData : IMediaMetaData
{
    public byte[] ReturnVidThumbnailBytes(string videoFilePath)
    {
        // videoFilePath example = 
        // /var/mobile/Containers/Data/Application/3E84C0D0-F590-4AAF-89E7-7D3BFC023E6B/Documents/temp/trim_160491789522565DC08BE-862C-4EE0-A135-BCD9236C6874.mov

        //Take local url and create an AVAsset
        AVAsset asset = AVAsset.FromUrl(new NSUrl(videoFilePath));

        AVAssetimageGenerator assetimageGenerator = AVAssetimageGenerator.FromAsset(asset);

        // Total duration of asset
        CMTime actualTime = asset.Duration;

        // 1/60 = 60th of a second
        CMTime cmTime = new CMTime(1,10);

        NSError error;
        var imageRef = assetimageGenerator.copyCGImageAtTime(cmTime,out actualTime,out error);

        if (imageRef == null)
            return null;

        var image = UIImage.FromImage(imageRef);
        return image.AsJPEG().ToArray();
    }
}

问题:

copyCGImageAtTime始终返回null。我检查NSError并得到以下信息:

Class Handle =无法将类型为“ Mono.Debugger.soft.PointerValue”的对象转换为类型为“ Mono.Debugger.soft.PrimitiveValue”

code = -11850

本地化失败原因=服务器配置不正确(但是,这是我正在此处访问的本地文件...?)

我无法找到有关类句柄错误的任何有用信息,并且本地化失败原因会引起尝试访问Web服务(而非本地存储)视频的人员的线程。任何人都对我遇到的问题有经验吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)