olarak adlandırıldım AVPlayerLayer
kullanarak oynadığım bir video için yavaş oynatma hızını etkinleştirmeye çalışıyorum. Bunu yapmak için, AVPlayerItem
, canPlaySlowForward
için true
döndürürse, belge rate
'u 0,0 - 1,0 aralığında etkinleştireceğini belirtir. Bu özellik salt okunur, bu nedenle AVPlayerItem
alt sınıfını almanız ve bunu gerçekleştirmek için bu özelliği geçersiz kılmanız gerekir. Bunu yaptım, ancak video hala yavaş bir hızda oynatmıyor, her zaman 1.0 oranı. Hiçbir zaman canPlaySlowForward
özelliğini çağırmaz. Bu neden?AVPlayerItem'in canPlaySlowForward özelliği hiçbir zaman
import AVFoundation
class SlowMoPlayerItem: AVPlayerItem {
override var canPlaySlowForward: Bool {
return true
}
}
oynatılması:
let asset = AVAsset(URL: NSBundle.mainBundle().URLForResource("some-video", withExtension: "mp4")!)
let playerItem = SlowMoPlayerItem(asset: asset)
let player = AVPlayer(playerItem: playerItem)
player.rate = 0.5
player.muted = true
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.layer.bounds
self.view.layer.addSublayer(playerLayer)
player.play()
Ben videoya ilgili yapılacak tek şey/ses aracılığıyla, arka plan sesi durdurma engellemek geçerli:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
}
video dosyası yapar bir ses parçası içermez, ancak bu dahil etmek hala gerekliydi.