gpt4 book ai didi

ios - Xamarin iOS ALAssetsLibrary WriteVideoToSavedPhotosAlbum 不保存到库

转载 作者:行者123 更新时间:2023-12-01 16:26:12 27 4
gpt4 key购买 nike

我正在使用 Xamarin 编写 iOS 应用程序,但在将视频保存到我的照片库时遇到问题。我正在使用 WriteVideoToSavedPhotosAlbum ALAssetsLibrary 的方法(下面的代码),但视频永远不会保存。我没有收到错误,但我也没有在完成 block 中收到 Assets 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 value 是存储在应用程序文档目录中的视频。

谢谢

最佳答案

需要注意的一点是 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);
});
});

关于ios - Xamarin iOS ALAssetsLibrary WriteVideoToSavedPhotosAlbum 不保存到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35197982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com