微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从AVAsset获取缩略图

如何解决无法从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 举报,一经查实,本站将立刻删除。