Étape 7 : contrôles de transport
Cette rubrique est l’étape 7 de la lecture audio/vidéo du didacticiel dans DirectShow. le code complet est présenté dans la rubrique exemple de lecture DirectShow.
La dernière étape consiste à ajouter des contrôles de transport (lecture, pause et arrêt). Pour lire le fichier, appelez IMediaControl :: Run.
HRESULT DShowPlayer::Play()
{
if (m_state != STATE_PAUSED && m_state != STATE_STOPPED)
{
return VFW_E_WRONG_STATE;
}
HRESULT hr = m_pControl->Run();
if (SUCCEEDED(hr))
{
m_state = STATE_RUNNING;
}
return hr;
}
Pour suspendre, appelez IMediaControl ::P ause.
HRESULT DShowPlayer::Pause()
{
if (m_state != STATE_RUNNING)
{
return VFW_E_WRONG_STATE;
}
HRESULT hr = m_pControl->Pause();
if (SUCCEEDED(hr))
{
m_state = STATE_PAUSED;
}
return hr;
}
Pour arrêter, appelez IMediaControl :: Stop.
HRESULT DShowPlayer::Stop()
{
if (m_state != STATE_RUNNING && m_state != STATE_PAUSED)
{
return VFW_E_WRONG_STATE;
}
HRESULT hr = m_pControl->Stop();
if (SUCCEEDED(hr))
{
m_state = STATE_STOPPED;
}
return hr;
}