首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC++ 利用 ActiveMovie Control 實現多媒體連續播放

     編輯:關於VC++

ActiveMovie Control 2.0 簡介

Microsoft ActiveX 控件,內建 MPEG 音/視訊解碼器,支援 WAV、MIDI、CD 音軌、AVI、MPEG 等格式。右鍵選單可直接控制播放/暫停/停止,屬性頁可設定全螢幕、音量平衡等。

常用方法與屬性

功能方法/屬性
播放/暫停/停止Run(), Pause(), Stop()
檔案設定/取得SetFileName(), GetFileName()
播放位置SetCurrentPosition(), GetCurrentPosition() (秒)
音量控制SetVolume(), GetVolume() (-10000~0)
自動播放SetAutoStart(TRUE)

專案實作:播放清單自動循環

  1. 建立對話框專案 Player,放入 ActiveMovie Control(IDC_ACTIVEMOVIE)、三按鈕(選擇曲目/循環播放/關閉)、一列表框(IDC_LIST)。
  2. ClassWizard 映射控件變數 m_ActiveMovie、按鈕/列表框變數。
  3. 選擇曲目:CFileDialog 多選,將完整路徑加入列表框。
  4. 循環播放:啟動 500ms 定時器,OnTimer 檢測 GetCurrentPosition()==0 判斷播放結束,取列表第一項播放並移至列表末尾:
void CPlayerDlg::OnTimer(UINT nIDEvent) {
    double pos = m_ActiveMovie.GetCurrentPosition();
    if (pos == 0) { // 播放結束或剛開始
        CString file; m_list.GetText(0, file);
        m_ActiveMovie.SetAutoStart(TRUE);
        m_ActiveMovie.SetFileName(file);
        m_ActiveMovie.Run();
        m_list.DeleteString(0);
        m_list.InsertString(-1, file); // 移至尾部實現循環
    }
    CDialog::OnTimer(nIDEvent);
}

void CPlayerDlg::OnPlay() { SetTimer(0, 500, NULL); }
void CPlayerDlg::OnClose() { KillTimer(0); m_ActiveMovie.Stop(); }

擴充功能(暫停、音量、全螢幕、平衡)皆可透過上表方法實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved