メディア セッションでのメディア ソースの使用
メディア セッションを使用して再生を制御する場合、メディア ソースで呼び出す必要がある一連のメソッドは制限されます。 このセクションでは、メディア ソースをメディア セッションと組み合わせて使用する方法について説明します。
アプリケーションで実行する基本的な手順を次に示します。
メディア ソースを作成します。 メディア ソースを作成するには、ソース リゾルバーを使用します。 詳細については、「 ソース リゾルバー」を参照してください。 ソース リゾルバーは、ソースの IMFMediaSource インターフェイスへのポインターを返します。 (カスタム メディア ソースを作成した場合は、代わりにカスタム作成方法を指定できます)。
プレゼンテーションを構成します。 ソースのプレゼンテーションを構成するには、 IMFMediaSource::CreatePresentationDescriptor を呼び出します。 このコピーは変更できますが、再生が開始されるまで変更はアクティブになりません。 再生中にプレゼンテーション記述子を変更しないでください。 詳細については、「 プレゼンテーション記述子」を参照してください。
メディア ソースを含むトポロジを作成します。 詳細については、「 トポロジ」を参照してください。
メディア セッションを使用して再生を制御します。 メディア セッションは、メディア ソースのメソッドを呼び出します。 現時点では、アプリケーションはメディア ソースのメソッドを呼び出さないでください。
メディア ソースを解放する前に、 IMFMediaSource::Shutdown を呼び出してソースをシャットダウンします。
Note
シーケンサー ソースを使用している場合、シーケンサー ソースはセグメント ソースのシャットダウンを処理します。 詳細については、「 Sequencer Source」を参照してください。
メディア セッションを使用する場合、メディア ソースで呼び出す必要があるメソッドは 、CreatePresentationDescriptor、 GetCharacteristics、 Shutdown のみです。 特に次の点に違いがあります。
Start、Pause、Stop を呼び出さないでください。これらのメソッドは、メディア セッションでのみ呼び出す必要があります。
IMFMediaStream メソッドは呼び出さないでください。
メディア ソースまたはストリームからイベントを直接取得しないでください。 パイプラインが正しく機能するためには、メディア セッションでこれらのイベントを受信する必要があります。 メディア セッションは、アプリケーションで必要なイベントを転送します。
関連トピック