您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx 3.x 声音播放、音量调节

2016-03-12 21:18 543 查看

1. playBackgroudMusic()

playBackgroudMusic 只适合播放持续时间比较长的声音文件,比如背景音乐。

[html] view
plain copy

print?

bool PlayMusic::init()

{

if ( !Layer::init() )

{

return false;

}

bool bRet = false;

do{

CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sky_city.mp3",true);

bRet = true;

}while(0);

return bRet;

}

2. playEffect()

playEffect 适合播放战斗的打斗声音、技能释放的声音。

[html] view
plain copy

print?

bool PlayMusic::init()

{

if ( !Layer::init() )

{

return false;

}

bool bRet = false;

do{

//CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sky_city.mp3",true);

CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("error.wav");

bRet = true;

}while(0);

return bRet;

}

3. 圆形音量按钮 ControlPotentiometer

一个圆形音量按钮由底座、进度条、控制按钮三部分组成。创建好音量按钮之后,它具备调节音量的功能,只有鼠标放在控制按钮上拖到一次,进度条就会改变显示范围,当然如果想控制音量,还需要加入监听事件。

[html] view
plain copy

print?

bool PlayMusic::init()

{

if ( !Layer::init() )

{

return false;

}

ControlPotentiometer* potentiometer = ControlPotentiometer::create("potentiometerTrack.png","potentiometerProgress.png","potentiometerButton.png");

potentiometer->setPosition(Point(200,200));

//监听进度值改变事件

potentiometer->addTargetWithActionForControlEvents(this,cccontrol_selector(PlayMusic::onValueChange),Control::EventType::VALUE_CHANGED);

this->addChild(potentiometer);

return true;

}

void PlayMusic::onValueChange(Ref* psender,Control::EventType event)

{

ControlPotentiometer* potentiometer = (ControlPotentiometer*)psender;

String* valueStr = String::createWithFormat("%f",potentiometer->getValue());

log(valueStr->getCString());

}

4. 音量控制按钮

ControlSlider 也是有底部、进度条、控制按钮三部分组成。用法和ControlPotentiometer几乎一样。

[html] view
plain copy

print?

ControlSlider* slider = ControlSlider::create("background.png","progress.png","sliderThumb.png");

slider->setPosition(ccp(300,200));

//设置滑动条的范围

slider->setMinimumValue(0);

slider->setMaximumValue(1000);

//设置滑动条当前值

slider->setValue(300);

slider->addTargetWithActionForControlEvents(this,cccontrol_selector(PlayMusic::sliderChange),Control::EventType::VALUE_CHANGED);

this->addChild(slider);

[html] view
plain copy

print?

void PlayMusic::sliderChange(Ref* psender,Control::EventType event)

{

ControlSlider* slider = (ControlSlider*)psender;

String* valueStr = String::createWithFormat("%f",slider->getValue());

log(valueStr->getCString());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: