0

Objective-C のイメージ ピッカー イメージ ピッカーを使用してタイム ラプスを選択していますが、すばやく実行しています。私はobjective-cコードにしかアクセスできなかったので、objective-cからswiftへのコンバーターを使用しましたが、エラーが発生しました。

func qb_imagePickerController(imagePickerController: QBImagePickerController, didFinishPickingAssets assets: [AnyObject]) {
    for asset in assets as! [PHAsset] {
        PHImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler: {(avAsset: AVAsset, audioMix: AVAudioMix, info: [NSObject : AnyObject]) -> Void in
            var url: NSURL = NSURL(string: "\(asset)")!
            var avAsset: AVURLAsset = AVURLAsset(URL: url, options: nil)
            var playerItem: AVPlayerItem = AVPlayerItem(asset: avAsset)
            var videoPlayer: AVPlayer = AVPlayer(playerItem: playerItem)
            videoPlayer.play()
        })
    }
    self.dismissViewControllerAnimated(true, completion: { _ in })
}

これは私が現在持っているコードです。私が受け取っているエラーは以下のとおりです。

タイプ '(AVAsset, AVAudioMix, [NSObject : AnyObject]) -> Void' の値を予期される引数タイプ '(AVAsset?, AVAudioMix?, [NSObject : AnyObject]?) -> Void' に変換できません

4

2 に答える 2

3

requestAVAssetForVideo:options:resultHandler:あなたが持っているドキュメントresultHandlerが必要な署名と一致しないことを確認してください。

この行を変更します。

PHImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler: {(avAsset: AVAsset, audioMix: AVAudioMix, info: [NSObject : AnyObject]) -> Void in

に:

PHImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler: {(avAsset: AVAsset?, audioMix: AVAudioMix?, info: [NSObject : AnyObject]?) -> Void in

?予想される場所にが追加されていることに注意してください。

于 2015-12-18T21:31:31.117 に答える