FMOD(2)

来源:互联网 发布:mindmanager mac 过期 编辑:程序博客网 时间:2024/03/29 04:40
1.      设置声音可听见的最小和最远距离。APISound::set3DMinMaxDistance(float min, float max)
程序中:sound1->set3DMinMaxDistance(2.0f * DISTANCEFACTOR, 10000.0f * DISTANCEFACTOR);
min: 最小距离
max: 最大距离
2.      开始播放音乐。API
FMOD_RESULT System::playSound(FMOD_CHANNELINDEX channelid,FMOD::Sound *sound, 
boolpaused, FMOD::Channel **channel);
程序中:result = system->playSound(FMOD_CHANNEL_FREE, sound1, true, &channel1);
FMOD_CHANNELINDEX 得到空闲的声道。
FMOD::Sound 之前定义好的声音变量
bool  paused 事后停止
FMOD::Channel 得到的声道的指针
3.      设置声道的位置以及速度。APIFMOD_RESULT Channel::set3DAttributes(const FMOD_VECTOR * pos,                
const FMOD_VECTOR * vel); 
     程序中:result = channel1->set3DAttributes(&pos, &vel);
     pos:声道位置
     vel:声道速度
4.      得到当前可得到的2d3d的数目。API
FMOD_RESULT System::getHardwareChannels(int *num2d,int *num3d,int*total);
程序中result = system->getHardwareChannels(&num2d, &num3d, 0);
num2d可以混合3d的数目
num3d:可以混合2d的数目
totaltotal = num3d + num2d
5.      更新3d的位置速度和方向。API
FMOD_RESULT System::set3DListenerAttributes(intlistener, const FMOD_VECTOR *pos, 
      const FMOD_VECTOR *vel, const FMOD_VECTOR *forward,const FMOD_VECTOR *up);
程序中:result = system->set3DListenerAttributes(0, &listenerpos, &vel, &forward, &up);
listener:如果环境中只有一个听者,则设置为0
pos:听者的位置
vel :从声音的起始位置到达听者耳朵时,每一秒的位移
forward :听者前方的方向
up:听者上方的方向
 
原创粉丝点击