Xamarin iOS ALAssetsLibrary WriteVideoToSavedPhotosAlbum 不保存到库

Posted

技术标签:

【中文标题】Xamarin iOS ALAssetsLibrary WriteVideoToSavedPhotosAlbum 不保存到库【英文标题】:Xamarin iOS ALAssetsLibrary WriteVideoToSavedPhotosAlbum doesn't save to library 【发布时间】:2016-02-04 10:05:46 【问题描述】:

我正在使用 Xamarin 编写 ios 应用程序,但在将视频保存到我的照片库时遇到问题。我正在使用ALAssetsLibraryWriteVideoToSavedPhotosAlbum 方法(代码如下),但视频从未保存。我没有收到错误,但我也没有在完成块中收到资产 URL。

有人知道这里会发生什么吗?

var url = NSUrl.FromFilename (this.FilePath);
ALAssetsLibrary library = new ALAssetsLibrary ();
library.WriteVideoToSavedPhotosAlbum (url, delegate(NSUrl u, NSError e)
    
        if (e != null)
        
            new UIAlertView ("Error", "Unable to save video to library", null, "Ok").Show();
        
    );

需要注意的是FilePath 值是存储在应用程序文档目录中的视频。

谢谢

【问题讨论】:

没人知道这可能是什么问题吗? 【参考方案1】:

需要注意的一点是FilePath值是存放在应用程序文档目录中的视频吗?您到底在寻找什么?因为 WriteVideoToSavedPhotosAlbum 用于存储使用相机捕获的视频,因为我们无法直接获取其 url,因此我们必须先将使用相机捕获的视频或图像存储到设备,然后我们可以使用 ALAssetsLibrary 获取其 url 和其他信息

我已经这样做了,它对我有用,希望这可以帮助你:

ALAssetsLibrary library = new ALAssetsLibrary();
library.WriteImageToSavedPhotosAlbum(originalImage.CGImage, meta, (assetUrl, error) =>

    library.AssetForUrl(assetUrl, delegate (ALAsset asset)
    
        ALAssetRepresentation representation = asset.DefaultRepresentation;
        if (representation != null)
        
            string fileName = representation.Filename != null ? representation.Filename : string.Empty;
            var filePath = assetUrl.ToString();
            var extension = filePath.Split('.')[1].ToLower();
            var mimeData = string.Format("image/0", extension);
            var mimeType = mimeData.Split('?')[0].ToLower();
            var documentName = assetUrl.Path.ToString().Split('/')[1];

        
    , delegate (NSError err) 
        Console.WriteLine("User denied access to photo Library... 0", err);
    );
);   

【讨论】:

以上是关于Xamarin iOS ALAssetsLibrary WriteVideoToSavedPhotosAlbum 不保存到库的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin SQLite教程Xamarin.iOS项目添加引用

Xamarin.Forms 是 Xamarin.Android、Xamarin.IoS 和 Xamarin.Win 的简单总和吗?

使用Xamarin Effect删除Xamarin.iOS中TextEntry上的圆角

Xamarin.iOS 和 RFComm

Xamarin.IOS 和 Signalr 推送通知

有哪些ios或android应用是用xamarin开发的