23

AVFoundationフレームワークを使用して、mp4ビデオを取得し、ビデオから字幕情報を抽出する小さな手順を作成しようとしています。そうすることで、startTimeOfSubtitle、endTimeofSubtitle、subtitleString の形式で NSDictionary 要素の NSArray を作成して返します。

これは、AVFoundation のリリース ノートから集めたものです。どんなコード例でも大歓迎です。

前もって感謝します。

言語およびその他の基準による音声および字幕メディアの選択

AVFoundation は、さまざまな言語設定、アクセシビリティ要件、カスタム アプリケーション構成、およびその他のニーズに対応するために、オーディオビジュアル メディア リソースによって提供される可能性があるオプションを検出し、これらのオプションを選択して再生するための機能を提供するようになりました。たとえば、リソースには複数の可聴オプションが含まれており、それぞれのダイアログが異なる言語で話され、他のオプションを除外して再生用に選択される場合があります。字幕などの読みやすいメディアについても、複数の言語で同様のオプションを提供できます。ファイルベースのコンテンツと HTTP ライブ ストリーミング コンテンツの両方で、メディア オプションを提供できます。AVAsset のインスタンスによって提供されるオプションのグループに関する情報を取得するには: • AVAsynchronousKeyValueLoading を使用して、AVAsset キー availableMediaCharacteristicsWithMediaSelectionOptions の値をロードします。

• 関心のあるメディア特性を持つ相互に排他的なオプションの各グループは、-[AVAsset mediaSelectionGroupForMediaCharacteristic:] を介して取得できます。可聴オプションを取得するには、AVMediaCharacteristicAudible などを渡します。各グループは、AVMediaSelectionGroup のインスタンスによって表されます。グループ内の各オプションは、AVMediaSelectionOption のインスタンスによって表されます。これらのクラスは両方とも AVMediaSelectionGroup.h で定義されています。

グループ内の利用可能なオプションを調べ、再生用に選択するためにそれらをフィルタリングするには: • AVMediaSelectionGroup は、オプションが再生可能か、目的のロケールに一致するか、またはオプションがまたは、アクセシビリティのための特定の機能を提供するかどうかなど、特別なメディア特性を持たない。メディア選択オプションのフィルタリングに使用できるアクセシビリティ機能の存在を示すメディア特性は、AVMediaFormat.h で定義されています。

• AVMediaSelectionOption は、ユーザーが使用可能なオプションの中から選択できるようにするユーザー インターフェイスでの表示に使用できるオプション、またはクライアント定義のフィルタリング操作の実装で使用できるオプションに関する情報を提供します。カスタム メディア リソースを利用するアプリケーションでのクライアント定義のフィルタリング オプションの例として、関連付けられたメタデータに特定の値が含まれている場合にのみ、オプションを選択できると見なすことができます。

• グループ内の特定のオプションを選択して再生するには、-[AVPlayerItem selectMediaOption:inMediaSelectionGroup:] を使用します。再生用に現在選択されているオプションを見つけるには、-[AVPlayerItem selectedMediaOptionInMediaSelectionGroup:] を使用します。

字幕に関するアドバイス

再生に利用可能な可読オプションの中からユーザーにオプションを表示するとき、およびユーザーの好みに応じて利用可能な可読オプションの中から選択するときは、特別な注意を払う必要があります。一部の判読可能なコンテンツには「強制」字幕が含まれています。つまり、コンテンツ作成者の意図に従って、ユーザーが字幕表示の設定を示しておらず、字幕オプションを明示的に選択していない場合でも、字幕が表示される必要があります。強制字幕は通常、会話やテキストの理解が不可欠であると考えられているにもかかわらず、コンテンツ プロバイダーが一般には理解されないと想定している言語で、会話や目に見えるテキストの意味を伝えるために使用されます。以下のアドバイスに従って、アプリで適切に表示できるようにしてください。

特性 AVMediaCharacteristicLegible の AVMediaSelectionGroup は、2 種類の読みやすいオプションを提供できます: 1) 必須と見なされるコンテンツと共に選択的と見なされる読み取り可能なコンテンツを表示するため、および 2) 不可欠な読み取り可能なコンテンツのみを表示するため。必須コンテンツのみを含む判読可能な AVMediaSelectionOptions には、メディア特性 AVMediaCharacteristicContainsOnlyForcedSubtitles (AVMediaFormat.h で定義) があります。選択インターフェースでエンドユーザーに表示する判読可能なオプションを提供する場合、または言語のユーザー設定に従って自動選択の字幕オプションを検討する場合、特性 AVMediaCharacteristicContainsOnlyForcedSubtitles を持つ判読可能なオプションは除外する必要があります。+[AVMediaSelectionOption mediaSelectionOptionsFromArray:

ユーザーが判読可能なコンテンツを優先しないことを示しているか、選択していない場合、アプリケーションは、特性 AVMediaCharacteristicContainsOnlyForcedSubtitles が存在する場合、再生用の判読可能なオプションの 1 つを選択する必要があります。強制のみの字幕付きの読みやすいオプションを含むほとんどのリソースでは、現在の可聴選択に従って、それらの中から適切な選択を行うことができます。-[AVMediaSelectionOption associatedMediaSelectionOptionInMediaSelectionGroup:] を使用して、可聴オプションに関連付けられた読みやすいオプションを取得します。それらの中から選択できる手段が他にない場合は、メディア選択グループの強制のみの字幕を含む最初の読みやすいオプションが適切なデフォルトです。

4

1 に答える 1