首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

软件资讯设计 工具 系统 开发 安全 办公 陶吧 IT教育 Windows 7 | 下载中心天极下载中心诚征下载通路合作伙伴
天极网 > 软件频道>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 音频声道均衡控件”。 热卖推荐: 手机 诺基亚 MP5 电脑包 双卡双待 手机链 U盘 笔记本电脑

关注此文的读者还看过:

返回软件频道首页

共1页。 1
  • 1.Delphi开发多媒体播放音轨问题小结

软件频道最新更新

热点推荐

IT嘉年华

编辑推荐

软件下载

热门
推荐

网友关注

软件
资料
游戏

装机推荐

文章排行

本周
本月
最新更新
天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络