资源大全 | 神秘文化 | 在线翻译 | QQ专区 | 视频教程 | 彩信频道 | 搜索引擎 | BT下载 |  | 网站地图
设为首页
加入收藏
联系站长
您现在的位置: 一百网络 >> 其他编程 >> Delphi编程 >> 文档正文
最近更新
普通文档 Together与Visual.Studi
普通文档 Together与Visual.Studi
普通文档 Together与Visual.Studi
普通文档 Delphi实现在数据库中存
普通文档 Delphi开发多媒体播放音
普通文档 开发工具大比拼之Visual
普通文档 Delphi串口通讯的监听
普通文档 Delphi中远程控制的实现
普通文档 利用Delphi编写Socket通
普通文档 利用Delphi开发网络数据
推荐文章
  • 此栏目下没有推荐文档
  • Delphi开发多媒体播放音轨问题小结

    文章作者:佚名 录入时间:2006-6-2 来源:不详
    网站声明:本站的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出处和原始作者,文章版权归本网站与文章作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。


    最近一段时间,在论坛上常看见问于切换音轨和切换声道的问题。在这做一个小结。大家可以转载。让菜鸟收益! 转载时,作者希望在最大程度上保持原有信息!
    1、什么是声(音)轨、声道?

      在早先的VCD时代,一个媒体文件只有一个音轨。故“音轨”一词不常被人们提及。VCD媒体文件中的伴唱或原唱,只有通过切换左右声道来实现。

      音轨是随着DVD而来的“产物”。在DVD(MPEG2格式)媒体文件中,一个音轨来记录一个语种(在VOD中常说的“原唱”和“伴唱”)。

      2、如何切换音轨?

      在这里,我推荐使用“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);
      obj := nil;
     end;
    end;

      3、如果切换声道?

      切换声道,需要获取Audio Renderer Filter上的IBasicAudio接口(提示:神龙卡的IBasicAudio接口在hardware decoder Filter上获取)。

      使用该接口的put_Balance方法即可实现切换声道。

      传入值说明:-10000 --- 右声道
            10000 --- 左声道
            0 --- 立体声

      4、如何知道媒体文件的音轨数?

      一般来说,在播放媒体文件时,都需要File Source -> Splitter.

      视Splitter Filter不同。获取的方法了也不尽相同。

      比如,有一些MPEG的Splitter,有几个音轨,就会创建几个Audio Output Pin.这种情况,你可以取得该Splitter Filter上的Audio Output Pin的数量(就是音轨数量)还有一些MPEG的Splitter,不论有多少音轨,只会输出一个Audio Output Pin.这种情况,该Splitter上已经实现了IAMStreamSelect接口。调用该接口上的Count方法即可获得音轨数量。

      5、引出的问题

      在切换声道之后,只有一个音箱发声。推荐使用“TBalncer 音频声道均衡控件”。

  • 上一篇文档:

  • 下一篇文档:
  •     查找更多“Delphi开发多媒体播放音轨问题小结”的内容  
    相关连接
  • 将Java程序变成Windows系统服务

  • 浅析Java多线程程序设计机制

  • Java初学者需掌握的30个基本概念(1)

  • JDBC 入门(1)

  • 面向Java程序员的Ajax:构建动态Java程序(1)