| 術語 | 說明 |
| 音軌 | DVD/MPEG2 多語種/原唱伴唱獨立音訊流,單一檔案可含多軌 |
| 聲道 | 立體聲左/右通道,VCD 時代透過切換左右聲道實現原唱/伴唱切換 |
音軌切換:IAMStreamSelect 介面
推薦使用 Morgan Stream Switcher Filter。取得 Filter 上的 IAMStreamSelect,呼叫 Enable:
var
obj: IAMStreamSelect;
begin
if Filter.QueryInterface(IID_IAMStreamSelect, obj) = S_OK then begin
obj.Enable(Index, AMSTREAMSELECTENABLE_ENABLE); // Index 為音軌索引
obj := nil;
end;
end;
聲道切換:IBasicAudio 介面
取得 Audio Renderer Filter(神龍卡等硬解卡可能在 Hardware Decoder Filter 上)的 IBasicAudio,設定 put_Balance:
| 數值 | 效果 |
| -10000 | 右聲道 |
| 0 | 立體聲 |
| 10000 | 左聲道 |
獲取音軌數量的兩種情況
- Splitter 為每軌建立獨立 Audio Output Pin:統計 Pin 數即為音軌數。
- Splitter 僅輸出單一 Audio Pin 但實作 IAMStreamSelect:呼叫
Count 方法獲取軌數。
常見問題與對策
切換聲道後單喇叭發聲 → 推薦使用 TBalancer 音訊聲道均衡控件 進行精細控制,避免單純 Balance 導致能量損失。
- 上一篇文章: Delphi 異常處理機制深度探究:try-except 與 try-finally 正確應用模式
- 下一篇文章: 代號 Dexter:Delphi 2006 Beta 4 深度試用報告——C++Builder 10 大躍進與 Delphi 新生態
Copyright ©
程式碼之家 All Rights Reserved