bool DirectShowVideoWrapper::pause(void)
{
    if(isInitialized())
    {
        HRESULT hr;
        TCHAR szErr[MAX_ERROR_TEXT_LEN];

		CComPtr<IMediaControl> mediaControl;
		hr = _pGraphBuilder->QueryInterface(&mediaControl);
        if (FAILED(hr))
        {
            AMGetErrorText(hr, szErr, MAX_ERROR_TEXT_LEN);
            SWARNING << "Unable to get media control, error: " << szErr << std::endl;
            return false;
        }

		hr = mediaControl->Pause();
        if (FAILED(hr))
        {
            AMGetErrorText(hr, szErr, MAX_ERROR_TEXT_LEN);
            SWARNING << "Unable to pause, error: " << szErr << std::endl;
            return false;
        }

		producePaused();
        return true;
    }
    return false;
}
Ejemplo n.º 2
0
bool VLCVideoWrapper::pause(void)
{
    // check if the player can be paused
    if(libvlc_media_player_can_pause(_MediaPlayer))
    {	// can pause it?  do it
        libvlc_media_player_pause(_MediaPlayer);
        // error checking of course
        checkVLCError("pausing");
    }
    if(isPaused())
    {
        producePaused();
        return true;
    }
    else
    {
        return false;
    }

}