2016-10-18 6 views
0

Ich benutze AVMutableComposition, um ein Video abzuspielen, das in verschiedene fortlaufende Dateien aufgeteilt ist. Beim Spielen gibt es jedoch einen kleinen Sprung (kurzer schwarzer Bildschirm) zwischen zwei aufeinanderfolgenden Segmenten.AVMutableComposition: Kleiner Sprung zwischen Videosegmenten beim Abspielen

Gibt es eine Möglichkeit, das zu verhindern?

import UIKit 
import AVFoundation 

class KLMasterPlayerViewController: KLPlayerViewController { 

    let comp:AVMutableComposition = AVMutableComposition() 
    var playerItem:AVPlayerItem! 

    init() { 
     super.init(nibName: nil, bundle: nil) 

     self.initComp() 
     self.playerItem = AVPlayerItem(asset: self.comp) 
     self.player = AVPlayer(playerItem: self.playerItem) 

    } 

    private func initComp() { 

     let segments = MasterVideo.sharedInstance.videoSegments 

     var insertedTime:Double = 0.0 

     for segment in segments { 

      do { 

       let asset = segment.getURLAsset() 

       try comp.insertTimeRange(CMTimeRangeMake(kCMTimeZero,asset!.duration), ofAsset: asset!, atTime: CMTimeMake(Int64(insertedTime * 10000), 10000)) 

       insertedTime += segment.getDuration() 

      } catch { 

      } 

     } 
    } 


} 
+0

wahrscheinlich Ihr Video mit einer zweiten Lücke vor dem Spiel nur überprüfen. – vaibhav

+0

Danke für den Vorschlag, aber nein, die Videodateien sind alle in Ordnung, ohne schwarz überhaupt. – user1875631

Antwort

0

Ich habe die Antwort gefunden: Swift hat die Dauer meines Video-Assets nicht richtig berechnet. Für jeden von ihnen gab es ein anderes Bild. Durch die Erzwingung der Videosegmente Dauer, das war in Ordnung und einwandfrei.

Froh, dass es gelöst ist!

Vielen Dank an Vaibhav für den Versuch zu helfen.

Verwandte Themen