Compartir a través de


Paso 4: Creación de la sesión multimedia

Este tema es el paso 4 del tutorial Cómo reproducir archivos multimedia con Media Foundation. El código completo se muestra en el tema Ejemplo de reproducción de sesión multimedia.

CPlayer::CreateSession crea una nueva instancia de la sesión multimedia.

//  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;
}

Este método lleva a cabo los pasos siguientes:

  1. Llama a CPlayer::CloseSession para cerrar cualquier instancia anterior de la sesión multimedia.
  2. Llama a MFCreateMediaSession para crear una nueva instancia de la sesión multimedia.
  3. Llama al método IMFMediaEventGenerator::BeginGetEvent para solicitar el siguiente evento de la sesión multimedia. El primer parámetro para BeginGetEvent es un puntero al propio objeto CPlayer, que implementa la interfaz IMFAsyncCallback.

El control de eventos se describe en el paso 5.

Siguiente: Paso 5: Control de eventos de sesión multimedia

Reproducción de audio y vídeo

Cómo reproducir archivos multimedia con Media Foundation