位置: 编程技术 - 正文

cocos2dx AudioEngine初体验,音效播放结束判断测试

编辑:rootadmin

推荐整理分享cocos2dx AudioEngine初体验,音效播放结束判断测试,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

由于simpleAudioEngine在播放音效时无法获取状态也无法在播放完成后回调,造成音效在按键频繁时发声重叠。改mac版本的库对目前的我来说挑战难度太大。

于是百度了半天,发现3.6版本的cocos2dx有了新的声音播放库AudioEngine。于是体验下,感觉还不错:

直接贴代码:

头文件:

#ifndef __macstudycocos2dx__newAudioEngineTest__

#define __macstudycocos2dx__newAudioEngineTest__

#include <stdio.h>

#include "cocos2d.h"

#include "audio/include/AudioEngine.h"

USING_NS_CC;

using namespace experimental;

class newAudioEngineTest:publicLayer ,publicAudioEngine{

public:

staticcocos2d::Scene* createScene();

virtualbool init();

// a selector callback

void playCallback(cocos2d::Ref* pSender);// 点击按钮后开始播放的回调函数

CREATE_FUNC(newAudioEngineTest);

bool isplaying=false;//标记播放状态

void changer_playingstatus();//播放完成后的回调函数,用来更改播放状态

};

newAudioEngineTest.cpp如下:

#endif /* defined(__macstudycocos2dx__newAudioEngineTest__) */

//

// newAudioEngineTest.cpp

// macstudycocos2dx

//

// Created by WangWei on /6/.

//

//

#include "newAudioEngineTest.h"

Scene* newAudioEngineTest::createScene()

{

// 'scene' is an autorelease object

auto scene =Scene::create();

// 'layer' is an autorelease object

auto layer =newAudioEngineTest::create();

// add layer as a child to scene

scene->addChild(layer);

// return the scene

return scene;

}

bool newAudioEngineTest::init()

{

//////////////////////////////

// 1. super init first

if ( !Layer::init() )

{

return false;

}

Size visibleSize =Director::getInstance()->getVisibleSize();

Vec2 origin =Director::getInstance()->getVisibleOrigin();

auto menuitem=MenuItemFont::create("play wav", CC_CALLBACK_1(newAudioEngineTest::playCallback,this));

//创建菜单项,点击时播放音效

menuitem->setPosition(Vec2(0,0));

cocos2dx AudioEngine初体验,音效播放结束判断测试

// create menu, it's an autorelease object

auto menu =Menu::create(menuitem,NULL);

menu->setPosition(Vec2(visibleSize.width/2,visibleSize.height/2));

this->addChild(menu,1);

return true;

}

voidnewAudioEngineTest::playCallback(Ref* pSender)

{

if (!isplaying) {

log("wav is not playing!");

isplaying=true;

int audioID=play2d("man1.wav");//播放音效文件

log("audioID =%d",audioID);

setFinishCallback(audioID,CC_CALLBACK_0(newAudioEngineTest::changer_playingstatus,this));

//音效播放完成后修改播放状态,此时会用到audioID

}

else{

log("wav is playing,this click is not response!");

}

}

voidnewAudioEngineTest::changer_playingstatus(){

isplaying=false;

log("finished,status has been change");

}

以下是log输出:(可以看出audioID是改变的,即使播放同一个音效)

-- ::. macstudycocos2dx iOS[:] cocos2d: surface size: x

wav is not playing!

audioID =0

finished,status has been change

wav is not playing!

audioID =1

finished,status has been change

wav is not playing!

audioID =2

finished,status has been change

wav is not playing!

audioID =3

finished,status has been change

wav is not playing!

audioID =4

wav is playing,this click is not response! //快速点击时

finished,status has been change

wav is not playing!

audioID =5

wav is playing,this click is not response! //快速点击时

wav is playing,this click is not response! //快速点击时

finished,status has been change

wav is not playing!

audioID =6

wav is playing,this click is not response!

wav is playing,this click is not response!

wav is playing,this click is not response!

wav is playing,this click is not response!

wav is playing,this click is not response!

wav is playing,this click is not response!

wav is playing,this click is not response!

finished,status has been change

wav is not playing!

audioID =7

wav is playing,this click is not response!

wav is playing,this click is not response!

wav is playing,this click is not response!

wav is playing,this click is not response!

wav is playing,this click is not response!

finished,status has been change

个人觉得如果音效可以使用AudioEngine来做,记住要用caf和wav&#;式。背景音乐可以使用simpleAudioEngine来播放,毕竟simpleAudioEngine有缓存机制。

如果不继承类时可以使用以下方式来播放哦:

int audioID=experimental::AudioEngine::play2d(wavfilestring->getCString());

版权声明:本文为博主原创文章,未经博主允许不得转载。

Cocos2d-3.x_在Lua中使用cjson库解析json prename=codeclass=cppboolAppDelegate::applicationDidFinishLaunching(){autoengine=LuaEngine::getInstance();//注册cjsonLuaStack*stack=engine-getLuaStack();luaopen_lua_extensions_cjson(stack-getLuaStat

实现了个类似blood brothers中的转轴特效 最近比较忙,有一段时间没写东西了,今天算是忙里偷闲,分享点东西。在美区有个游戏叫bloodbrothers,玩了玩,感觉还不错,其中有一个页面,可以选

在cocos2dx中实现水波滤镜 因为工作原因,开始转向cocos2d-x开发方向了。自然的,凭着之前引擎的经验偏向底层渲染研究。在此期间看了两本书《cocos2d-x权威指南》《cocos2d-x高级

标签: cocos2dx AudioEngine初体验,音效播放结束判断测试

本文链接地址:https://www.jiuchutong.com/biancheng/368363.html 转载请保留说明!

上一篇:cocos2dx 使用 crypto++(cocos2d解密)

下一篇:Cocos2d-3.x_在Lua中使用cjson库解析json(cocoscreator lua)

  • 购买税控盘分录怎么做
  • 企业年报股东及出资信息要怎么填写
  • 律师事务所的账务流程
  • 递延收益负债类科目
  • 工伤医疗费全赔吗
  • 有差价的商品发票如何开具及注意事项
  • 工程项目中的设备主要包括什么和什么
  • 生产企业商贸企业
  • 电力公司安装变压器要多少钱
  • 业务有提成个税怎么扣
  • 固定资产未验收投入使用
  • 建安企业工资占比标准
  • 无形资产评估增值
  • 挂靠的项目税务局怎么交地税?
  • 增值税申报表第31栏为什么有数字
  • 分公司不独立核算怎么报税
  • 新个税过了申报期怎么办
  • 运费发票没有开 怎么做到成本
  • 工资一年发一次合法吗
  • 收到老板的钱会计分录
  • 个人所得税应纳税额计算表图片
  • 遗属补助是死亡当月发放还是次月发放
  • 诉讼费计入哪里
  • 为什么Win7电脑开机时会卡在
  • windows安全警报关不掉
  • 华为p30分屏怎么操作
  • WIN10显示缩略图
  • 盘盈的资产
  • 反结账是什么意思怎么取消
  • 增值税减免是当月报下月冲吗
  • realtek自动安装
  • 建筑业预缴企业所得税税率是多少
  • cachelib
  • 差旅费增值税专用发票少报销可以吗
  • 蜡梅的养殖方法视频
  • win10系统安装详细步骤
  • php网站结构
  • 公司法人变更后银行账户怎么变更
  • php超时限制
  • 海岸边上
  • tokenall
  • 如何在织梦中设置图片加文字
  • css 3有哪些新特性
  • 民办非企业培训机构注册流程
  • 贷款利息发票可以随便开吗
  • mongodb27017
  • 业务招待费汇算清缴怎么填表
  • 买轿车产生的服务费计入什么科目
  • 固定资产折旧范围口诀
  • 自然人扣缴系统怎么申报个税
  • 异常凭证进项税额转出怎么申报
  • 支付宝和微信的财务统计
  • 关联方交易金额达到多少算转移定价
  • 大货车怎样申请报废
  • 销售退回如何做账务处理
  • 国地税合并对个人带来的影响
  • 公司一般户的钱怎么拿出来
  • 员工餐费标准怎么算
  • 收到投资款应该填制什么凭证
  • 电子发票是否使用
  • 融资租入固定资产计提折旧吗
  • 苹果mac最新的系统
  • linux如何查询
  • win10快速切换到桌面快捷键
  • macbookpro查看硬盘
  • sgbhp.exe - sgbhp是什么进程 有什么用
  • ubuntu14.04.6安装教程
  • win7取消禁用无线网络
  • win7硬盘访问权限怎么解除
  • linux系统评测
  • 很实用的话
  • dropdownlist绑定数据
  • android 像素
  • 举例说明json数据格式的语法
  • 欢迎使用来电提醒业务是什么意思
  • 货物劳务税包括哪些税
  • 江西省税务局公众号
  • 甘肃省张掖市国家储备林
  • 政府收回土地条件
  • 船舶吨税案例分析
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设