0
AVFoundation 및 MacRuby를 사용하여 비디오를 처리하고 있습니다. 나는 비디오를 받고 아무 문제가 처음에 아래의 코드를 사용하여 내 AVPlayer를 연주하지해야한다 : 나는 새로운 비디오 재생을 변경하려고 할 때 내가 문제로 실행MacRuby를 사용할 때 replaceCurrentItemWithPlayerItem을 사용할 때의 문제
videoWindow.setFrame(@frame, display:true, animate:true)
@content_view = self.videoWindow.contentView
@content_view.wantsLayer = true
asset = AVAsset.assetWithURL(url)
item = AVPlayerItem.new
item.initWithAsset(asset)
$video = AVPlayer.alloc.initWithPlayerItem(item)
@player_layer = AVPlayerLayer.playerLayerWithPlayer($video)
@player_layer.Frame = @frame
@content_view.layer.addSublayer(@player_layer)
@player_layer.videoGravity = AVLayerVideoGravityResize
$video.seekToTime(CMTimeMake(4, 1))
$video.play
입니다. 이렇게하려면 동일한 AVPlayer 개체를 사용하고 replaceCurrentItemWithPlayerItem 명령을 사용하려고합니다. 이 응용 프로그램을 실행하려고하면 응용 프로그램이 응답하지 않습니다.
asset2 = AVAsset.assetWithURL(@url2)
item2 = AVPlayerItem.new
item2.initWithAsset(asset2)
$video.pause
$video.replaceCurrentItemWithPlayerItem(item2)
나는 또한 PerformAnMainThread를 수행했지만 동일한 결과를 얻습니다.
$video.performSelectorOnMainThread('replaceCurrentItemWithPlayerItem:', withObject:item2, waitUntilDone:true)
AVPlayer 개체를 다시 사용하여 새 항목을 재생하는 방법이 있는지 궁금합니다.
item = AVPlayerItem.playerItemWithURL(@url)
$video.replaceCurrentItemWithPlayerItem(item)
내가 자산을 만드는 상황을 몇 가지 문제가있는 듯 :