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)
我也試過performSelectorOnMainThread,但我得到了相同的結果。
$video.performSelectorOnMainThread('replaceCurrentItemWithPlayerItem:', withObject:item2, waitUntilDone:true)
我想知道是否有重用我的AVPlayer對象播放新項目的方法?