软件频道>设计工具系统开发安全办公陶吧IT教育Vista频道|Google Chrome Spring Web Flow 2.0 入门
您现在的位置: 天极网 > 软件频道 > Delphi开发多媒体播放音轨问题小结
全文

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

2005-09-15 15:10作者:CoolSlob出处:blog责任编辑:方舟
天极软件专题专区精选     到天极软件“读编交流区”畅所欲言
Google专区 POPO专区 QQ专区 QQ挂机 了解Web2.0
Flash MX 视频教程 Photoshop视频教程 网页设计视频教程 照片处理数字暗房
PPT动画演示教程 Excel动画教程集 Word动画演示教程 Windows Vista专区
特洛伊木马专区 黑客知识教程专区 防火墙应用专区 注册表应用专区
Windows API开发专区 网络编程专区 VB数据库编程专区 图像处理与多媒体编程

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

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

软件资讯·软件下载尽在天极软件

相关搜索:
相关文章及软件
关注此文读者还看过
近期热点
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众