設備的開啟與操作: 保存及重置一台視頻設備的屬性

本例演示如何通過IC Imaging Control保存和重置視頻捕捉設備的屬性。
語言:Visual C++
版本:3.0.3
发布于:2005年4月7日
作者:IC Imaging Control技術支持部
需求:IC Imaging Control >2.1
由WDM數據流類驅動程序驅動的相機、視頻轉換器或圖像採集卡

示例程序窗口如下圖所示:

The dialog window of the sample application.

首先創建一個基於MFC對話框的應用程序。 而後,新建4個按鈕,分別用於開啟視頻捕捉設備,顯示IC Imaging Control內置的屬性設置對話框,保存設備屬性,以及從.xml文件中載入設備屬性。

創建一個Grabber類的實例,作為對話框類的成員。

DShowLib::Grabber        m_cGrabber; // The instance of the Grabber class.

在"Device"按鈕事件處理程序中,選擇一個視頻捕捉設備。 首先,在調用IC Imaging Control內置的"Device Selection"對話框前,檢驗當前的Grabber對像是否已經含有一個正在運行的視頻設備。 通過Grabber::showDevicePage()調用"Device Settings"對話框。 離開"Device Settings"對話框後,檢測是否已經選擇了一台有效的視頻捕捉設備。 如果設備有效,則通過調用Grabber::startLive()開始視頻圖像。

void CSaveRestorePropertiesDlg::OnBnClickedDevice()
{
    if(m_cGrabber.isDevValid() && m_cGrabber.isLive())
    {
        m_cGrabber.stopLive();
    }

    m_cGrabber.showDevicePage(this->m_hWnd);

    if(m_cGrabber.isDevValid())
    {
        m_cGrabber.startLive();
    }
}

"Properties"按鈕事件處理程序通過調用 Grabber::showVCDPropertyPage()顯示內置的設備屬性設置對話框:

void CSaveRestorePropertiesDlg::OnBnClickedProperties()
{
    if( m_cGrabber.isDevValid())
    {
        m_cGrabber.showVCDPropertyPage(this->m_hWnd);
    }
}

方法Grabber::saveDeviceStateToFile()將當前設備的設置和屬性保存至一個XML文件中:

void CSaveRestorePropertiesDlg::OnBnClickedSave()
{
    if( m_cGrabber.isDevValid())
    {
        m_cGrabber.saveDeviceStateToFile("device.xml");
    }
}

方法Grabber::loadDeviceStateFromFile從一個XML文件中重新載入設備及其屬性。 對於設備選擇對話框,有必要在開啟一台新視頻設備前停止正在播放的視頻。 如果載入了一台有效的視頻設備,通過Grabber.startLive()開啟圖像數據流:

void CSaveRestorePropertiesDlg::OnBnClickedRestore()
{
    if(m_cGrabber.isDevValid() && m_cGrabber.isLive())
    {
        m_cGrabber.stopLive();
    }

    if( m_cGrabber.loadDeviceStateFromFile( "device.xml"))
    {
        if( m_cGrabber.isDevValid())
            m_cGrabber.startLive();
    }
}

相關源代碼示例

責任聲明
IC Imaging Control源代碼庫中的所有代碼均只用於教學目的,The Imaging Source Europe GmbH作為IC Imaging Control的開發製造商,不對任何由於使用本文或其中源代碼所產生的後果承擔責任。

该网站为The Imaging Source网络的一部分。其它的站点包括 公司, Imaging, 天文相機, Astronomy Cameras Blog, Blog caméras d'astronomie, 天文相機有獎競答, TX Text Control, LiveDocx, phpLiveDocxForum.