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

Delphi 多媒體核心元件 TMediaPlayer 完整解析:屬性、方法與裝置控制實戰

     編輯:Delphi

TMediaPlayer (System 分頁) 是 Delphi 多媒體開發的核心元件,封裝 Windows MCI (Media Control Interface) 命令,可控制 CD-ROM、MIDI、WaveAudio、AVIVideo、VCR 等裝置。本文系統整理其 9 大功能按鈕、關鍵屬性、核心方法與實戰程式碼範例。

介面按鈕與對應方法

按鈕方法功能
PlayPlay播放/錄製
PausePause暫停
StopStop停止
NextNext下一軌/幀
PrevPrev上一軌/幀
StepStep單步前進
BackBack單步後退
RecordStartRecording開始錄製
EjectEject彈出媒體

可透過 VisibleButtons、EnabledButtons 屬性集合顯示/啟用特定按鈕。

關鍵屬性速查

屬性用途備註
DeviceType指定多媒體裝置類型dtAutoSelect, dtCDAudio, dtWaveAudio, dtMIDISequencer, dtAVIVideo 等,**必須設定**
FileName媒體檔案路徑針對檔案型裝置 (Wave, MIDI, AVI)
TrackCD 音軌編號1-based
StartPos / EndPos播放區段起訖位置配合 TimeFormat (tfMilliseconds, tfTMSF 等)
Notify完成時發送訊息需處理 OnNotify 事件
Wait同步/非同步執行True=阻塞等待完成
Shareable允許其他應用共用裝置

核心方法詳解與範例

1. Open - 開啟裝置


// 程式啟動自動播放 CD 音樂
procedure TForm1.FormCreate(Sender: TObject);
begin
  with MediaPlayer1 do
  begin
    DeviceType := dtCDAudio;
    Visible := False; // 隱藏控制列
    Open;
    Play;
  end;
end;

2. Save - 儲存媒體內容

將目前載入的媒體存為 FileName 指定的檔案。不支援儲存的裝置 (如 VideoDisc) 會忽略。

3. Rewind - 重置至起始位置


// 按鈕點擊:倒帶並播放 WAV
procedure TForm1.Button1Click(Sender: TObject);
begin
  MediaPlayer1.DeviceType := dtWaveAudio;
  MediaPlayer1.FileName := 'C:\Windows\Chimes.wav';
  MediaPlayer1.Rewind;
  MediaPlayer1.Play;
end;

4. Resume - 從暫停處繼續

與 Play 不同:Play 總是從 StartPos 開始;Resume 從暫停位置繼續。

5. Close - 關閉裝置釋放資源


MediaPlayer1.Close;

6. PauseOnly - 純暫停 (冪等)

若已暫停則維持暫停;Pause 在某些裝置上若已暫停可能改為繼續播放。

完整播放 WAV 範例 (非同步 + 完成通知)


procedure TForm1.PlayWavAsync(const FileName: string);
begin
  with MediaPlayer1 do
  begin
    Close; // 確保乾淨狀態
    DeviceType := dtWaveAudio;
    FileName := FileName;
    Notify := True; // 啟用 OnNotify
    Wait := False;  // 非同步
    Open;
    Play;
  end;
end;

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
  if MediaPlayer1.NotifyValue = nvSuccessful then
    ShowMessage('播放完成');
  MediaPlayer1.Close;
end;

常見裝置類型與支援格式

  • dtAutoSelect:依副檔名自動判斷
  • dtWaveAudio:.WAV
  • dtMIDISequencer:.MID, .RMI
  • dtAVIVideo:.AVI
  • dtCDAudio:音樂 CD (需音軌)
  • dtVCR:錄影機 (需硬體)
  • dtDAT、dtDigitalVideo、dtOverlay 等專業裝置

小結

TMediaPlayer 雖屬封裝層薄的 MCI 包裝器,卻涵蓋了 Windows 多媒體控制的 90% 需求。掌握 DeviceType 正確選擇、TimeFormat 對應位置單位、Notify/Wait 同步策略,即可開發出穩定的播放器、錄音機、CD 控制工具。現代專案若需更豐富編解碼支援,建議改用 DirectShow (DSPACK)、FFmpeg (PasLibVlc) 或 BASS Audio Library。

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