【问题标题】:How to convert a video NSURL to an ALAsset?如何将视频 NSURL 转换为 ALAsset?
【发布时间】:2015-12-01 15:59:59
【问题描述】:

Facebook 分享需要如下 ALAsset:

let content = FBSDKShareVideoContent()

//The videos must be less than 12MB in size.

let bundle = NSBundle.mainBundle()
let path = bundle.URLForResource("a", withExtension: "mp4")

let video = FBSDKShareVideo()
// doesn't work; needs to be an "asset url" (ALAsset)
//video.videoURL = path

content.video = video

let dialog = FBSDKShareDialog()
dialog.shareContent = content
dialog.show()

如何获取本地捆绑文档或 NSData 对象,并将其转换为 ALAsset?

(我最初的想法是将视频保存到本地相册,然后加载列表并选择它,但这是不必要的界面步骤)

【问题讨论】:

标签: ios swift facebook-ios-sdk alasset fbsdk


【解决方案1】:

ALAsset 的 documentation 声明

一个 ALAsset 对象表示由 Photo 应用程序管理的照片或视频。

所以我很确定您必须先将视频写入相机胶卷,然后才能将其用作 ALAsset。但是,您无需打开相机胶卷并让用户选择资产即可使用它。写入 ALAssetLibrary 时使用

library.writeVideoAtPathToSavedPhotosAlbum(movieURL, completionBlock: { (newURL, error) -> Void

您在 newUrl 完成块变量中获得资产 url。在 Facebook 分享电话中使用它

let content = FBSDKShareVideoContent()
content.video = FBSDKShareVideo(videoURL: newURL)

FBSDKShareAPI.shareWithContent(content, delegate: self)
NSLog("Facebook content shared \(content.video.videoURL)")

如果您愿意,您可以在完成块内进行此共享,或者您可以保存完成块中的 newUrl 并在其他地方使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 2016-08-15
    • 1970-01-01
    • 2014-04-04
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多