国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Delphi > 正文

使用Delphi開(kāi)發(fā)多媒體播放音軌問(wèn)題的FAQ(原創(chuàng))

2019-11-18 17:57:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最近一段時(shí)間,在CSDN和DFW上常看見(jiàn)問(wèn)于切換音軌和切換聲道的問(wèn)題。在這做一個(gè)小結(jié)。大家可以轉(zhuǎn)載。讓菜鳥(niǎo)收益! 轉(zhuǎn)載時(shí),作者希望在最大程度上保持原有信息!

1、什么是聲(音)軌、聲道?
  在早先的VCD時(shí)代,一個(gè)媒體文件只有一個(gè)音軌。故“音軌”一詞不常被人們提及。VCD媒體文件中的伴唱或原唱,只有通過(guò)切換左右聲道來(lái)實(shí)現(xiàn)。
  音軌是隨著DVD而來(lái)的“產(chǎn)物”。在DVD(MPEG2格式)媒體文件中,一個(gè)音軌來(lái)記錄一個(gè)語(yǔ)種(在VOD中常說(shuō)的“原唱”和“伴唱”)。

2、如何切換音軌?
  在這里,我推薦使用“Morgan Stream Switcher”Filter。
  
  音軌的切換,一般是使用Filter上實(shí)現(xiàn)的IAMStreamSelect接口中的Enable方法。
  例:
  var
    obj: IAMStreamSelect;
  begin
    if Filter.QueryInterface(IID_IAMStreamSelect, obj) = S_OK then
    begin
      obj.Enable(Index{音軌}, AMSTREAMSELECTENABLE_ENABLE);
      obj := nil;
    end;
  end;

3、如果切換聲道?
  切換聲道,需要獲取Audio Renderer Filter上的IBasicAudio接口(提示:神龍卡的IBasicAudio接口在hardware decoder Filter上獲取)。
  使用該接口的put_Balance方法即可實(shí)現(xiàn)切換聲道。
    傳入值說(shuō)明:-10000 ---  右聲道
                 10000  ---  左聲道
                     0  ---  立體聲

4、如何知道媒體文件的音軌數(shù)?

  一般來(lái)說(shuō),在播放媒體文件時(shí),都需要File Source -> Splitter.
  視Splitter Filter不同。獲取的方法了也不盡相同。
  比如,有一些MPEG的Splitter,有幾個(gè)音軌,就會(huì)創(chuàng)建幾個(gè)Audio Output Pin.這種情況,你可以取得該Splitter Filter上的Audio Output Pin的數(shù)量(就是音軌數(shù)量)還有一些MPEG的Splitter,不論有多少音軌,只會(huì)輸出一個(gè)Audio Output Pin.這種情況,該Splitter上已經(jīng)實(shí)現(xiàn)了IAMStreamSelect接口。調(diào)用該接口上的Count方法即可獲得音軌數(shù)量。

5、引出的問(wèn)題
  在切換聲道之后,只有一個(gè)音箱發(fā)聲。推薦使用“TBalncer 音頻聲道均衡控件”。

作者: CoolSlob
Email&MSN: CoolSlob@163.com



發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 沽源县| 璧山县| 绵阳市| 阿克| 长宁区| 盐山县| 固镇县| 太原市| 临夏县| 灯塔市| 平定县| 江安县| 安西县| 无锡市| 鄂温| 磐石市| 福鼎市| 新沂市| 象州县| 彭泽县| 井研县| 清水县| 顺平县| 静安区| 盘锦市| 东乌珠穆沁旗| 上犹县| 家居| 台东县| 左权县| 衡阳县| 麻栗坡县| 武威市| 闵行区| 南投县| 济南市| 桑植县| 横山县| 丁青县| 望都县| 渝北区|