Share via


メディア セッションでのメディア ソースの使用

メディア セッションを使用して再生を制御する場合、メディア ソースで呼び出す必要がある一連のメソッドは制限されます。 このセクションでは、メディア ソースをメディア セッションと組み合わせて使用する方法について説明します。

アプリケーションで実行する基本的な手順を次に示します。

  1. メディア ソースを作成します。 メディア ソースを作成するには、ソース リゾルバーを使用します。 詳細については、「 ソース リゾルバー」を参照してください。 ソース リゾルバーは、ソースの IMFMediaSource インターフェイスへのポインターを返します。 (カスタム メディア ソースを作成した場合は、代わりにカスタム作成方法を指定できます)。

  2. プレゼンテーションを構成します。 ソースのプレゼンテーションを構成するには、 IMFMediaSource::CreatePresentationDescriptor を呼び出します。 このコピーは変更できますが、再生が開始されるまで変更はアクティブになりません。 再生中にプレゼンテーション記述子を変更しないでください。 詳細については、「 プレゼンテーション記述子」を参照してください。

  3. メディア ソースを含むトポロジを作成します。 詳細については、「 トポロジ」を参照してください。

  4. メディア セッションを使用して再生を制御します。 メディア セッションは、メディア ソースのメソッドを呼び出します。 現時点では、アプリケーションはメディア ソースのメソッドを呼び出さないでください。

  5. メディア ソースを解放する前に、 IMFMediaSource::Shutdown を呼び出してソースをシャットダウンします。

    Note

    シーケンサー ソースを使用している場合、シーケンサー ソースはセグメント ソースのシャットダウンを処理します。 詳細については、「 Sequencer Source」を参照してください。

     

メディア セッションを使用する場合、メディア ソースで呼び出す必要があるメソッドは 、CreatePresentationDescriptorGetCharacteristicsShutdown のみです。 特に次の点に違いがあります。

  • StartPause、Stop を呼び出さないでください。これらのメソッドは、メディア セッションでのみ呼び出す必要があります。

  • IMFMediaStream メソッドは呼び出さないでください。

  • メディア ソースまたはストリームからイベントを直接取得しないでください。 パイプラインが正しく機能するためには、メディア セッションでこれらのイベントを受信する必要があります。 メディア セッションは、アプリケーションで必要なイベントを転送します。

メディア セッション