AVPlayer не поддерживает внешние субтитры файла webVtt в swift - PullRequest
0 голосов
/ 22 ноября 2018

Я использую swift 3 и пытаюсь добавить субтитры с помощью файла webVtt, но он не работает и вылетает из моего приложения.см. мой код ниже.

 let asset1 = AVAsset(url: URL(string: playUrl)! // HLS video link

   //Create AVMutableComposition
    let videoPlusSubtitles = AVMutableComposition()

    //Adds video track
    let videoTrack = videoPlusSubtitles.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid)

    try? videoTrack?.insertTimeRange(CMTimeRangeMake(kCMTimeZero, asset1.duration),
                                     of: asset1.tracks(withMediaType: .video)[0],
                                     at: kCMTimeZero)

    //Adds subtitle track
    let subtitleAsset = AVAsset(url: URL(string: SubtittleUrl)!)
    print("Subtitle CC: \(SubtittleUrl)")

    let subtitleTrack = videoPlusSubtitles.addMutableTrack(withMediaType: .text, preferredTrackID: kCMPersistentTrackID_Invalid)

    try? subtitleTrack?.insertTimeRange(CMTimeRangeMake(kCMTimeZero, asset1.duration),
                                        of: subtitleAsset.tracks(withMediaType: .text)[0],
                                        at: kCMTimeZero)
    playerItem = AVPlayerItem(asset: videoPlusSubtitles)
    player = AVPlayer(playerItem: playerItem)
    playerLayer = AVPlayerLayer(player: player)
    playerLayer?.videoGravity = AVLayerVideoGravity.resizeAspect
    playerLayer?.contentsScale = UIScreen.main.scale
    layer.insertSublayer(playerLayer!, at: 0)
    player?.play()

Пожалуйста, предложите мне решение, как я могу отображать субтитры на моих видео, используя внешние файлы субтитров, используя расширения vtt или srt.

...