网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 手机学院 | 邮件系统 | 网络安全 | 认证考试
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.[Delphi]一个解析FTP地址的小函数.
.多层数据库开发二:单层和两层的应.
.编辑框和位图按钮的特殊结合.
.Delphi简介.
.DFM文件与XML文件互转.
.Com接口入门细详(一).
.Win32调试API学习心得(一).
.COM/DCOM中如何传递数组.
.用Delphi对SQL-DMO进行封装的一种.
.最小的程序.
.Delphi编译错误中文手册.
.delphi读取ini文件.
.如何将C/C++程序转译成Delphi(五).
.在打印或打印预览前如何获取报表.
.中港台譯名對照表簡易語法版.
.borland工程师如何保证父类(TStr.
.Borland有一个梦,程序员的梦.
.游戏开发者社区对底层API的投票.
.Delphi2005(DiamondBack)使用体验.
.TEmbeddedwb的一个小bug.

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

发表日期:2006-2-4

最近一段时间,在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


上一篇:监视资源管理器的文件变化 人气:11041
下一篇:建立自己的csdn知识管理库(1) 人气:10135
浏览全部Delphi开发多媒体播放音轨的内容 Dreamweaver插件下载 网页广告代码 2009年新年快乐