2015-10-20 10 views
5

मैं क्रोमैकी फ़िल्टर के साथ एक वीडियो को संसाधित करना चाहता हूं और आउटपुट को स्क्रीन पर पुन: उत्पन्न किया जाना चाहिए।वीडियो प्लेबैक GPUImage और स्विफ्ट

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    let aSelector : Selector = "start:" 
    let tapGesture = UITapGestureRecognizer(target: self, action: aSelector) 
    tapGesture.numberOfTapsRequired = 1 
    view.addGestureRecognizer(tapGesture) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

@IBAction func start(sender: AnyObject) { 
    NSLog("tap pressed") 
    play() 
} 

func play(){ 
    let path = NSBundle.mainBundle().pathForResource("glass_buster", ofType: "mp4") 
    let player = AVPlayer() 
    let pathURL = NSURL.fileURLWithPath(path!) 
    NSLog(pathURL.absoluteString) 
    let playerItem = AVPlayerItem(URL: pathURL) 
    player.replaceCurrentItemWithPlayerItem(playerItem) 


    let gpuMovie = GPUImageMovie(playerItem: playerItem) 
    gpuMovie.playAtActualSpeed = true 
    let filter = GPUImageChromaKeyFilter() 
    gpuMovie.addTarget(filter) 
    gpuMovie.playAtActualSpeed = true 


    gpuMovie.startProcessing() 
    player.play() 


} 

उत्तर

1

तुम भी एक GPUImageView जो फिल्म को प्रदर्शित करता है की जरूरत है और आप एक स्थानीय वर में खिलाड़ी की दुकान नहीं कर सकते हैं:

कोड मैं विकसित है कि किसी भी वीडियो नहीं दिखा रहा है और मैं क्यों नहीं समझ सकता नीचे

। प्रयास करें निम्नलिखित:।

var player: AVPlayer! = nil 
var playerItem : AVPlayerItem! = nil 

func play() { 
    let path = NSBundle.mainBundle().pathForResource("glass_buster", ofType: "mp4") 
    player = AVPlayer() 
    let pathURL = NSURL.fileURLWithPath(path!) 

    playerItem = AVPlayerItem(URL: pathURL) 
    player.replaceCurrentItemWithPlayerItem(playerItem) 


    let gpuMovie = GPUImageMovie(playerItem: playerItem) 
    gpuMovie.playAtActualSpeed = true 

    let filteredView: GPUImageView = GPUImageView(); 
    filteredView.frame = self.view.frame 
    self.view.addSubview(filteredView) 

    let filter = GPUImageChromaKeyFilter() 
    gpuMovie.addTarget(filter) 
    gpuMovie.playAtActualSpeed = true 
    filter.addTarget(filteredView) 

    gpuMovie.startProcessing() 
    player.play() 
} 
+0

की कोशिश की ..... फिल्म नहीं चलता है :( – Kerby82

+0

काम नहीं कर रहा और – Kerby82

+0

संकलन नहीं जैसा कि पहले उल्लेख किया है, मैं अपने मोबाइल पर जवाब दे दिया है, लिखने की त्रुटियों के लिए खेद है मैं तो बस का परीक्षण किया उपरोक्त कोड और यह काम करता है। अगर यह किसी डिवाइस पर परीक्षण सुनिश्चित नहीं करता है और जांचता है कि वीडियो सही तरीके से पैक किया गया है। शुभकामनाएँ! – niggeulimann

संबंधित मुद्दे