C# Can';无法从AVAsset获取缩略图

C# Can';无法从AVAsset获取缩略图,c#,ios,xamarin,avasset,C#,Ios,Xamarin,Avasset,在我的Xamarin.Forms项目中,我使用依赖项注入在我的.iOS项目中调用一个方法,以便检索用户刚刚录制的视频的缩略图 从我的Xamarin.Forms项目调用: byte[] thumbnailBytes = DependencyService.Get<IMediaMetaData>().ReturnVidThumbnailBytes(vid.Path); 问题是: CopyCGImageAtTime始终返回null。我检查了N错误,得到了以下信息: 类句柄=无法将“Mon

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

从我的Xamarin.Forms项目调用:

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

CopyCGImageAtTime始终返回null。我检查了N错误,得到了以下信息:

类句柄=无法将“Mono.Debugger.Soft.PointerValue”类型的对象强制转换为“Mono.Debugger.Soft.PrimitiveValue”类型

代码=-11850

Localized failure reason=服务器配置不正确(请稍候,这是我正在访问的本地文件…?)


我找不到任何关于类句柄错误的有用信息,本地化的失败原因引发了试图从web服务而不是本地存储访问视频的人的线程。有没有人对我遇到的问题有经验?

尝试添加行
assetImageGenerator.AppliesPreferredTrackTransform=true我已经有了那一行,但删除了它,因为它似乎没有必要,谢谢你的建议,如果它仍然不起作用,你可以将你的示例分享给github,我会检查它。我实际上还没有github帐户哈哈哈,我现在正忙着处理一些其他错误,但我会尽量记住这样做,非常感谢。对不起,为什么您需要它在github上?这是一个工作项目,我不能上传所有的项目代码
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();
    }
}