位置: 编程技术 - 正文

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)

  • 对账结算流程
  • 怎么从营业执照上看是不是一般纳税人
  • 零申报资产总计不能为零
  • 认缴制投资方的账务处理
  • 补计提上一年度费用
  • 个税申报收入额怎么填
  • 一般纳税人免税政策
  • 其他预算收入科目核算内容
  • 长期待摊费用可以转入费用或者成本吗
  • 平均房租
  • 研发费用是否包括增值税
  • 政府给的慰问金叫什么
  • 装修公司在装修完后增加费用
  • 建筑企业1%承包承租个人所得税的会计分录
  • 维护费可以留到明年抵扣吗?
  • 生产经营活动包括建设项目吗
  • 汇算清缴需要调增的费用
  • 购买商品用于赠送
  • 股利分配是在当期损益吗
  • 万份收益是什么意思0.6
  • 开发阶段包括
  • 月末是指
  • 差旅费账务处理例子
  • 财政收回额度怎么记账
  • bios设置内存频率后黑屏
  • wordpress如何使用
  • 期末损益类科目结转
  • 购买增值税防伪税控系统专用设备
  • 现金流量套期的例子
  • 事业单位专项资金包括哪些内容
  • w11怎么创建快捷方式
  • 公共基础设施的英语
  • 盈余公积减少记哪方
  • 税前扣除的比例
  • jquery 滚动条
  • 餐饮类的增值税
  • 出口退税无纸化备案怎么弄
  • vuex详解和用法
  • 简述时期指标和时点指标的特点
  • dedecms官网
  • fastdfs和minio哪个好
  • 人民法院司法警察警用装备
  • 捐款 企业
  • 财产保险费用会增加吗
  • phpcms默认密码
  • 一般纳税人和小规模纳税人怎么界定
  • 借款可以抵货款吗
  • 哪些费用计入管理费用
  • 有限公司分公司属于什么类型
  • 公司与公司的往来款计入什么科目
  • 管理费用主要核算哪些内容
  • 发放福利视同销售进项税要转出吗?
  • 免税商品外汇业务
  • 应收应付核销的会计科目
  • 固定资产内部转移流程
  • 客户给的现金如何转到公司账上
  • 会计物料超损费怎么算
  • 退回投标保证金在投诉阶段怎么办
  • 建筑企业结转成本能不能不分人材机
  • 签订购货合同,计划下月购入的固定资产
  • 银行询证函快递费谁负担运费
  • 建筑业营改增后税务问题
  • 企业预提费用是什么科目
  • mysql闪退怎么回事
  • mysql远程访问不了
  • Windows Server 2003系统进程中NETWORK SERVICE相关知识详解
  • windows server 2008 r2最大支持内存
  • Windows命令行复制粘贴命令
  • 安装网络设备
  • 今日推送是什么
  • python创建二维数据表
  • shell获取字符串中的数字
  • python里面颜色
  • 浅析jQuery Ajax通用js封装
  • 深入JavaScript高级语法
  • 餐饮服务需要交印花税吗?
  • 国税系统升级后怎么添加办税人
  • 建筑工程合同首付款
  • 成品油消费税税率表
  • 税务局宣传报道
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设