软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 开发杂谈 -> XAudio2学习之调节音量 -> 正文阅读

[开发杂谈]XAudio2学习之调节音量


XAudio2音量调节分为全局和声道调节以及连接音量调节。所谓全局就是说设置了音量后会影响整个音频流的声音大小;声道调节就是说只调节某一个声道的音量大小;连接音量设置是说设置voice与其输出voice之间的声道映射音量。举个例子来说明:
IXAudio2SourceVoice->IXAudio2SubmixVoice->IXAudio2MasteringVoice
由三个voice组成的音频图。IXAudio2SourceVoice为2声道,IXAudio2SubmixVoice和IXAudio2MasteringVoice为5.1声道。
所有Voice的所有声道的音量默认都是为1.0。
音频数据经SourceVoice流向SubmixVoice,最终流向MasteringVoice,期间进行采样率和通道数转换。
设置全局音量可以使用IXAudio2SourceVoice::SetVolume和IXAudio2SubmixVoice::SetVolume以及IXAudio2MasteringVoice::SetVolume来设置,任一设置以后都会影响整个音频流的整体音量大小。SetVolume接口都是继承自IXAudio2Voice,参数为浮点型。取值一般为0~1.0,用于调节音量大小。1.0表示无衰减和无增益,0表示静音。如果为负值的话,可以用来逆转音频的相位。
设置声道音量可以使用IXAudio2MasteringVoice::SetChannelVolumes和IXAudio2SourceVoice::SetChannelVolumes以及IXAudio2SubmixVoice::SetChannelVolumes来改变某一声道的音量大小。也就是平时所说的平衡。也是继承自IXAudio2Voice,参数为浮点型。取值一般为0~1.0,用于调节音量大小。1.0表示无衰减和无增益,0表示静音。如果为负值的话,可以用来逆转音频的相位。
<span style="font-size:18px;">HRESULT SetChannelVolumes(
         UINT32 Channels,
         const float *pVolumes,
         UINT32 OperationSet = XAUDIO2_COMMIT_NOW
)
</span>
第一个参数表示此voice包含的所有声道数,第二参数表示每个声道需要设置的音量,使用float指针。例如2声道,那么第二个参数float ChannelVolumes[2] = { 1.0, 0.5 };,参数和声道进行匹配,从坐声道开始。
连接音量设置是指设置当前voice和它的输出voice之间的通道音量映射,比如2通道输出到5.1声道,当前voice每个声道映射到target voice每个声道的音量。SetOutputMatrix接口都是继承自IXAudio2Voice,参数为浮点型。取值一般为0~1.0,用于调节音量大小。1.0表示无衰减和无增益,0表示静音。如果为负值的话,可以用来逆转音频的相位。
<span style="font-size:18px;">HRESULT SetOutputMatrix(
         IXAudio2Voice *pDestinationVoice,
         UINT32 SourceChannels,
         UINT32 DestinationChannels,
         const float *pLevelMatrix,
         UINT32 OperationSet = XAUDIO2_COMMIT_NOW
)
</span>
由当前voice调用,第一个参数表示的输出到的target voice的对象;第二个参数表示当前voice的声道数;第三个参数表示的是target voice的声道数;第四个参数表示的传递给target voice的映射音量数组。
Array of [SourceChannels × DestinationChannels] volume levels sent to the destination voice. The level sent from source channel S to destination channel D is specified in the form pLevelMatrix[SourceChannels × D + S].
上面是文档中描述的,大致意思就是:pLevelMatrix是一个指向元素个数为SourceChannels × DestinationChannels的浮点型数组的指针,数组中的数值表示当前voice映射到target voice每个通道的音量。映射方式是:源声道S映射到目的声道D的音量值对应数组中pLevelMatrix[SourceChannels × D + S]。

例如:2声道映射到5.1声道:
Output Left Input [Array Index] Right Input [Array Index]
Left 1.0 [0] 0.0 [1]
Right 0.0 [2] 1.0 [3]
Front Center 0.0 [4] 0.0 [5]
LFE 0.0 [6] 0.0 [7]
Rear Left 0.8 [8] 0.0 [9]
Rear Right 0.0 [10] 0.8 [11]

 

本文地址;http://blog.csdn.net/u011417605/article/details/51037717
交流QQ:1245178753
......显示全文...
    点击查看全文


上一篇文章      下一篇文章      查看所有文章
2016-04-02 21:01:37  
开发杂谈 最新文章
BloomFilter
大学四年编程之历程
内核分析
造人论坛——意识的本质和一个人工脑模型
OFDM信号[matlab描述]
人类还会进化吗?
HDUACM1035RobotMotion简单模拟题
树、二叉树(二)
iisphpweb.config处理404,500等,跳转友好
DatabaseAsaFortress
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 人民的名义 人民的名义在线看 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图
中国文化英文 多播视频 装修知识库
2017-7-20 20:38:44
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --