如何将视频 NSURL 转换为 ALAsset?
How to convert a video NSURL to an ALAsset?
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?
(我最初的想法是将视频保存到本地相机胶卷,然后加载列表并选择它,但这是不必要的界面步骤)
ALAsset 的 documentation 指出
An ALAsset object represents a photo or a video managed by the Photo application.
所以我很确定您必须先将视频写入相机胶卷,然后才能将其用作 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 并在其他地方使用它。
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?
(我最初的想法是将视频保存到本地相机胶卷,然后加载列表并选择它,但这是不必要的界面步骤)
ALAsset 的 documentation 指出
An ALAsset object represents a photo or a video managed by the Photo application.
所以我很确定您必须先将视频写入相机胶卷,然后才能将其用作 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 并在其他地方使用它。