16

ビデオのストリーミングに m3u8 ビデオ形式を使用していますが、同じ字幕を表示する必要があります。

Apple ドキュメントを検索したところ、 のclosedCaptionDisplayEnabledプロパティを使用してこれを実現できることがわかりましたAVPlayer

字幕の形式を知りたいのですが?.srt 形式で対応できますか?

また、を使用して同じことを達成できMPMoviePlayerControllerますか?

どんな助けでも大歓迎です。

4

5 に答える 5

6

これは@JohannesFahrenkrug answerの Swift バージョンです。これが誰かに役立つことを願っています:

    let localVideoAsset = Bundle.main.url(forResource: "L1C1P1C3", withExtension: "mp4")

    //Create AVMutableComposition
    let videoPlusSubtitles = AVMutableComposition()

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

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

    //Adds subtitle track
    let subtitleAsset = AVURLAsset(url: Bundle.main.url(forResource: "L1C1P1C3", withExtension: ".mp4.vtt")!)

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

    try? subtitleTrack?.insertTimeRange(CMTimeRangeMake(kCMTimeZero, localVideoAsset.duration),
                                        of: subtitleAsset.tracks(withMediaType: .text)[0],
                                        at: kCMTimeZero)
于 2018-08-21T09:57:02.053 に答える
2

AVPlayer と MPMoviePlayerController の両方で字幕を表示できます。

違いは、AVPlayer では、closedCaptionDisplayEnabled プロパティを使用して字幕を表示するかどうかを制御することです。

MPMoviePlayerController では、ユーザーが設定アプリのスイッチを使用して字幕を表示するかどうかを制御します。アプリでこれをプログラムで制御することはできません。

于 2013-02-27T19:44:24.010 に答える
0

WWDC 2013 iOS アプリは、字幕に WebVTT ファイルを使用します (これを発見した Nicholas Riley の功績によるものです)。何らかの理由で、各セッションには約 50 (正確な数は異なります) があります。

WebVTT が AVFoundation または MPMoviePlayer レベルでサポートされているかどうか、またはアプリが字幕ファイル自体をダウンロードして解析するかどうかはわかりません。

「webvtt m3u8」をすばやく検索すると、この HTTP Live Streaming Draftへの参照が見つかりました。これは、m3u8 プレイリスト内の WebVTT ファイルを参照するだけで、これを機能させることができる可能性があることを示唆しています。ただし、WWDC セッションの m3u8 URL を自明に推測できなかったため、例はありません。

于 2013-07-27T08:06:22.123 に答える