手順 4: メディア セッションを作成する
このトピックは、「メディア ファンデーションでメディア ファイルを再生する方法」に関するチュートリアルの手順 4 です。 完全なコードは、「メディア セッション再生の例」トピックに示されています。
CPlayer::CreateSession
で、メディア セッションの新しいインスタンスが作成されます。
// Create a new instance of the media session.
HRESULT CPlayer::CreateSession()
{
// Close the old session, if any.
HRESULT hr = CloseSession();
if (FAILED(hr))
{
goto done;
}
assert(m_state == Closed);
// Create the media session.
hr = MFCreateMediaSession(NULL, &m_pSession);
if (FAILED(hr))
{
goto done;
}
// Start pulling events from the media session
hr = m_pSession->BeginGetEvent((IMFAsyncCallback*)this, NULL);
if (FAILED(hr))
{
goto done;
}
m_state = Ready;
done:
return hr;
}
このメソッドは、次の手順を実行します。
CPlayer::CloseSession
を呼び出して、メディア セッションの以前のインスタンスを閉じます。- MFCreateMediaSession を呼び出して、メディア セッションの新しいインスタンスを作成します。
- IMFMediaEventGenerator::BeginGetEvent メソッドを呼び出して、メディア セッションに次のイベントを要求します。 BeginGetEvent の最初のパラメーターは、IMFAsyncCallback インターフェイスを実装する、CPlayer オブジェクト自体へのポインターです。
イベント処理については、手順 5 で説明します。
次へ: 手順 5: メディア セッション イベントを処理する
関連トピック