软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
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 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年1日历
2018-1-20 7:31:22
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --