0

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 に変換するにはどうすればよいですか?

(私の当初の考えでは、ビデオをローカル カメラ ロールに保存してから、リストを読み込んで選択することでしたが、それは不要なインターフェイス手順です)

4

1 に答える 1

1

ALAssetのドキュメントには、次のように記載されています。

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 を保存して別の場所で使用することもできます。

于 2015-12-01T18:03:12.870 に答える