次の方法で共有


Visual Basic でのクローズド キャプションの表示

このトピックは Windows XP にのみ適用。

クローズド キャプション (CC) を有効にするには、アプリケーションはクローズド キャプション フィーチャーをアクティブにする必要がある。アナログ TV の場合、アプリケーションはデータ サービス フィーチャーもアクティブにする必要がある。ビデオ コントロールの使用可能なフィーチャーのコレクションからフィーチャーを列挙することによって、フィーチャーを検索できる。フィーチャーをアクティブにするには、フィーチャーをアクティブ フィーチャー コレクションに追加する。

クローズド キャプション フィーチャーをアクティブにするには、以下の手順を実行する。

  1. 新しい MSVidFeatures コレクションを作成する。
  2. ビデオ コントロールの MSVidCtl.FeaturesAvailable プロパティから使用可能なフィーチャーを列挙する。
  3. 各フィーチャーのクラス ID (CLSID) を CC フィーチャーの CLSID と比較する。アナログの場合は、データ サービス フィーチャーの CLSID もチェックする。CLSID が一致した場合は、そのフィーチャーをコレクション オブジェクトに追加する。後で使えるように CC フィーチャーへの参照を変数に格納する。
  4. ビデオ コントロールの MSVidCtl.FeaturesActive プロパティをコレクション オブジェクトと等しくなるように設定する。

これらのステップは、MSVidCtl.Build または MSVidCtl.Run を呼び出す前に実行すること。CC フィーチャーをアクティブ フィーチャー コレクションに追加した後は、CC フィーチャーの MSVidClosedCaptioning.Enable プロパティを設定していつでもクローズド キャプションを有効または無効にすることができる。デフォルトでは、このフィーチャーは無効になっている。

次のコードは、アナログ TV のクローズド キャプションを有効にする例である。

Const CLSID_CC As String = "{7F9CB14D-48E4-43B6-9346-1AEBC39C64D3}"
Const CLSID_DATASVC As String = "{334125C0-77E5-11D3-B653-00C04F79498E}"
Private mCCFeature as MSVidClosedCaptioning

Dim colFeatures As New MSVidFeatures
Dim objFeature As IMSVidFeature

' CC フィーチャーとデータ サービス フィーチャーを見つけてコレクションに追加する。
For Each objFeature In VidControl.FeaturesAvailable
    If objFeature.ClassID = CLSID_CC Then
        colFeatures.Add objFeature
        Set mCCFeature = objFeature
    ElseIf objFeature.ClassID = CLSID_DATASVC Then
        colFeatures.Add objFeature
    End If
Next
' このコレクションをアクティブなフィーチャー用に使用する。
VidControl1.FeaturesActive = colFeatures
mCCFeature.Enable = True

この例では、CLSID_CC 定数と CLSID_DATASVC 定数にフィーチャーの CLSID が文字列形式で格納されている。アプリケーションはこれらの文字列を IMSVidDevice.ClassID プロパティと照合する。デジタル TV については、IP データを受け取るためにデータ サービス フィーチャーが必要な場合以外は ElseIf 句を省略できる。

CC フィーチャーをアクティブにした後は、CC フィーチャーの MSVidClosedCaptioning.Enable プロパティを True に設定することによりキャプションを表示できる。このプロパティを False に設定すれば、キャプションを再び非表示にできる。