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

1. playBackgroudMusic() 

playBackgroudMusic 只适合播放持续时间比较长的声音文件,比如背景音乐。
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 适合播放战斗的打斗声音、技能释放的声音。
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

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

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几乎一样。
	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);
void PlayMusic::sliderChange(Ref* psender,Control::EventType event)
{
	ControlSlider* slider = (ControlSlider*)psender;
	String* valueStr = String::createWithFormat("%f",slider->getValue());
	log(valueStr->getCString());
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值