如何解决无法从AVAsset获取缩略图
在我的Xamarin.Forms项目中,我使用依赖项注入在.iOS项目中调用一个方法,以便检索用户刚刚录制的视频的缩略图。
从我的Xamarin.Forms项目调用:
byte[] thumbnailBytes = DependencyService.Get<IMediaMetaData>().ReturnVidThumbnailBytes(vid.Path);
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 举报,一经查实,本站将立刻删除。