繁体中文
设为首页
加入收藏
当前位置:技术首页 >> 开发 >> Delphi >> Delphi开发多媒体播放音轨问题小结

Delphi开发多媒体播放音轨问题小结

2006-10-11 16:46:37  作者:admin  来源:赛迪网  浏览次数:59  文字大小:【】【】【
关键字:Delphi

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


点击收藏到

责任编辑:admin

本文引用地址: http://tech.itzero.com/2006/1011/815.html 请粘贴到你的QQ/MSN上推荐给你的好友

相关文章
Delphi使用VB编写的ActiveX控件全攻略
在delphi.net的VCL.net里使用Ado.net
用Delphi开发Web服务数据库程序
Delphi程序实现对光驱盘盒的开关控制
Delphi中动态链接库(DLL)的建立和使用
在delphi.net的VCL.net里使用Ado.net
Delphi中优秀的字符串分割函数
在Delphi中如何维护COM+的状态信息
用Delphi编写VxD设备驱动程序
Delphi使用VB编写的ActiveX控件全攻略
在delphi中使用xml文档的两种方法
 

最新文章

更多

· Delphi使用VB编写的Acti...
· 在delphi.net的VCL.net里...
· 用Delphi开发Web服务数据...
· Delphi程序实现对光驱盘...
· Delphi中动态链接库(DLL...
· 在delphi.net的VCL.net里...
· Delphi中优秀的字符串分...
· 在Delphi中如何维护COM+...
· 用Delphi编写VxD设备驱动...
· Delphi使用VB编写的Acti...

热点文章

更多

其它推荐