0

AVPlayer ベースのビデオ プレーヤーに字幕サポートを追加しています。[self.player.currentItem.asset mediaSelectionGroupForMediaCharacteristic:AVMediaCharacteristicLegible] によって生成された AVMediaSelectionGroup から mediaType "sbtl" の AVMediaSelectionOption オブジェクトを取得でき、適切な AVMediaSelectionOption を選択してライブ ストリームに字幕を表示できます。これはすべて正常に機能しています。

問題があるのは、iOS 5.01 および iOS 5.1 で AVMediaSelectionOption の選択を解除することです。

iOS 6 を実行しているデバイスでは、[self.player.currentItem selectMediaOption:nil inMediaSelectionGroup:self.subtitleSelectionGroup] で字幕を無効にでき、期待どおりに消えます。ただし、iOS 5.01 および iOS 5.1 では、字幕の更新は停止しますが、最後に表示されたテキストは、プレーヤーを閉じるか、電源ボタンを押すか、アプリをバックグラウンドに移動するまでビデオ プレーヤーに残ります。

それが問題かもしれないと考えて、強制のみの字幕を除外しようとしましたが、役に立ちませんでした. これはOSのバグですか?ストリーミング ビデオに何か問題がありますか?

ご協力とご指導をよろしくお願いいたします。

4

1 に答える 1

1

これが iOS5 で役立つかどうかはわかりませんが、私のビデオ ストリームには、字幕のオプションと各言語の強制字幕のオプションがあります。強制字幕オプションに変更すると、字幕が表示されなくなります (強制字幕がある場合のみ)。したがって、このような動画を作成し、字幕のない強制字幕を使用する場合は、強制字幕を選択して iOS5 でトリックを作成できます。

これは、私の選択グループオプション配列がどのように見えるかの出力オブジェクトです:

<__NSArrayM 0x2006d590>(
    <AVMediaSelectionTrackOption: 0x200297a0, mediaType = sbtl, locale = en, title = (null), option ID = 3, associated forced-only option = <AVMediaSelectionTrackOption: 0x2006d600>>,
    <AVMediaSelectionTrackOption: 0x2006d600, mediaType = sbtl, locale = en, title = (null), option ID = 3, default = YES, forced subtitles only>,
    <AVMediaSelectionTrackOption: 0x20057210, mediaType = sbtl, locale = zh, title = (null), option ID = 4, associated forced-only option = <AVMediaSelectionTrackOption: 0x20044bc0>>,
    <AVMediaSelectionTrackOption: 0x20044bc0, mediaType = sbtl, locale = zh, title = (null), option ID = 4, forced subtitles only>,
    <AVMediaSelectionTrackOption: 0x2002d450, mediaType = sbtl, locale = ce, title = (null), option ID = 5, associated forced-only option = <AVMediaSelectionTrackOption: 0x20028660>>,
    <AVMediaSelectionTrackOption: 0x20028660, mediaType = sbtl, locale = ce, title = (null), option ID = 5, forced subtitles only>
    )

このテーマに関する情報はあまりないため、これが役立つことを願っています。

于 2013-02-15T12:42:58.903 に答える