CocosCreator系列——用安卓原生实现录音与播放功能
正式开始这篇文章之前先啰嗦一下,写程序一定要细心细心再细心,一定要细心细心再细心,一定要细心细心再细心,重要的事说三遍,其实自己一直都写好了,但是一直不成功,发现多了一个“/”,然后不报错了,不知道为什么还是没声音,why?why?why?why?why?我一脑子黑人问号脸?后来发现手机是静音模式……好吧,我都服了我自己了。
开始正文,先来点掌声吧,👏👏👏为了写这个功能,花了我两天时间研究安卓,真是客户端什么都要会啊,终于在第二天即将下班之际完成这个功能了,首先是CocosCreator客户端代码,同样基于2.2.1版本,我注释写的挺详细的,不懂的可以关注我一波,私信我给你讲解一下,看js代码吧:
cc.Class({
extends: cc.Component,
properties: {
luyinBtn: cc.Node,
},
// use this for initialization
onLoad: function () {
if (cc.sys.isNative) {
//设置用来存放录制语音的路径
this.setStorageDir(jsb.fileUtils.getWritablePath() + "audioS/");
}
this.luyinBtn.on(cc.Node.EventType.TOUCH_START, this.onVoiceTouch, this);//一直按着录音
this.luyinBtn.on(cc.Node.EventType.TOUCH_END, this.stopRecord, this);//抬起录音完成
this.luyinBtn.on(cc.Node.EventType.TOUCH_CANCEL, this.stopRecord, this);//抬起取消录音,暂未实现,实际项目里再说吧,这个简单
},
setStorageDir: function (dir) {
if (cc.sys.os == cc.sys.OS_ANDROID) {
jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "setStorageDir", "(Ljava/lang/String;)V", dir);
}
},
onVoiceTouch() {
if (!cc.sys.isNative) {
return;
}
//开始录音啦!!!!!!!
//先清理一下旧文件
this.clearCache("record.mp3");
if (cc.sys.os == cc.sys.OS_ANDROID) {
cc.log