迅速に PBJVideoPlayer ポッドを使用する再生中のビデオに白黒効果を追加しようとしています。ユーザーがフィルターを適用するためにボタンをタップできるように設定しました。AVVIdeoComposition のアナログがポッドにどのようなものになるかわからないため、私の問題が発生したと思います。任意の洞察をいただければ幸いです。
@IBAction func filterTapped(sender: UIButton) {
switch self.media! {
case .Photo(let image): self.blackAndWhiteFilterForImage(image)
case .Video(let url): self.createBlackAndWhiteFilterForVideo(url)
}
}
func createBlackAndWhiteFilterForVideo(url: NSURL){
//B&W Filter for Video
let asset = AVAsset(URL: url)
let filter = CIFilter(name: "CIPhotoEffectNoir")!
let composition = AVVideoComposition(asset: asset, applyingCIFiltersWithHandler: { request in
// Clamp to avoid blurring transparent pixels at the image edges
let source = request.sourceImage.imageByClampingToExtent()
filter.setValue(source, forKey: kCIInputImageKey)
// Vary filter parameters based on video timing
let seconds = CMTimeGetSeconds(request.compositionTime)
filter.setValue(seconds * 10.0, forKey: kCIInputRadiusKey)
// Crop the blurred output to the bounds of the original image
let output = filter.outputImage!.imageByCroppingToRect(request.sourceImage.extent)
// Provide the filter output to the composition
request.finishWithImage(output, context: nil)
})
//Everything below this code is where I am unsure how to proceed
let playerItem = playerController.asset
print(playerItem)
/*
playerItem.comp
let player = AVPlayer(playerItem: playerItem)
player.play()
*/
}