转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
使用Delphi开发多媒体播放音轨问题的FAQ(原创)         ★★★★

使用Delphi开发多媒体播放音轨问题的FAQ(原创)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:853 更新时间:2009/4/23 18:26:24

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

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 音频声道均衡控件”。



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


[聊天工具]sygate的FAQ大全  [聊天工具]TOM-Skype使用技巧与FAQ
[常用软件]office2000FAQ(三)  [VB.NET程序]使用VB.Net做一个配置web.config功能的WinForm(原…
[Delphi程序][原创] 将多个jpg文件以追加形式合并成一个文件  [Web开发]ADO.NET连接池FAQ
[其他]对Spfile之参数错误修改之后的解决办法(FAQ)  [其他]SYBASE数据库迁移到AS400db2的FAQ(五)
[其他]SYBASE数据库迁移到AS400db2的FAQ(四)  [其他]SYBASE数据库迁移到AS400db2的FAQ(三)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台