基于自己的服务器,接第三方SDK语音工具包,免费!!!

幼麟语音SDK
持续更新
废话不逼逼,直接正文 ,感谢 麒麟子大大 的支持

1.SDK简单易用,只有几个API (两个小时接完,专注于数据传递)
2.不用注册第三方账号
3.语音数据,可以由自己的聊天服务器直接中转
4.完全免费

需求:语音通话;

思路:
1 . 实现 前端录音和播放

2 . 前后端沟通传参,协议数量,数据格式 (我这里是protobuf协议)

内容:

  1. 前端调试 场景的开关按钮

在onload 监听 showMicBtn 函数, showMicBtn 函数 主要负责 监听 开关你按钮事件,
判断 cc.Node.EventType.TOUCH_START 按下监听 API 可以查到 按下开始录音 micBtnDown()
cc.Node.EventType.TOUCH_CANCEL 手指划出开关按钮时 micBtnCancel()
cc.Node.EventType.TOUCH_END 录音完成放开按钮 micBtnUp()
3个状态监听事件函数

按下开关开始录音触发监听事件,
在这里定义 lastTouchTime 获取开始录音的时间
它作用是 有多人讲话时形成队列根据时间长短顺序播放语音

开始录音调用voiceNative.js 这个 脚本就是jsb 了 接幼麟sdk 包 安卓沟通java文件 和 ios 接 mm文件
功能已经完善 并且已经有了备注 大家直接在 FunctionUILayer引用就可以了,引用的方法上面已经说明
在这里 只需要修改以下3个路径
AndroidClassName (安卓sdk :语音存放sdk)
AndroidClassPlay ( 安卓sdk: 语音播放放sdk)
IosClassName (ios sdk)

,下图会对 voiceNative.js 说明

把对应的sdk 放入 biuld (打包文件) sdk 调用目录中,这块你可以参考自己项目接微信的sdk 在哪放同一个路径下
记得这里的 AndroidClassName 和 IosClassName 换成自己项目的路径
const AndroidClassName = “org/cocos2dx/javascript/VoiceRecorder”;
const IosClassName = “VoiceSDK”;

AndroidClassName 为 安卓 sdk路径
IosClassName ios sdk路径

以上就可以完成语音的本地录取和播放,测试代码成功就可以和后端人员协商协议连通数据完成语音功能


以下内容就是一些jsb 的用法

命名采用了和sdk相同的命名可以更好地理解
上面 cc.Node.EventType.TOUCH_START 监听会执行VoiceNative,js prepare()函数
判断 androin 为 cc.sys.os == cc.sys.OS_ANDROID
ios cc.sys.os == cc.sys.OS_IOS
jsb.reflection.callStaticMethod () 是js代码直接调用java函数
第一个参数 AndroidClassName 类名 可以理解为脚本文件
第二个参数 prepare 方法名 就是调用的接口
第三个参数 “(Ljava/lang/String;)V” 方法参数 (常用的有:()V 和 (Ljava/lang/String;)V 这两种)这里我贴一段代码

最简单的方法签名是()V,它表示一个没有参数没有返回值的方法
Java类型 签名
int -------- I
float -------- F
boolean-------- Z
String --------Ljava/lang/String;

第四个参数 filename(我们的传参:record.amr)

下图就是 java sdk prepare() 函数的
VoiceRecorder.java 中 prepare() 语音 输出格式为amr

当我们手机离开关按钮录音结束 ,cc.Node.EventType.TOUCH_END 触发  micBtnU()

以上是前端逻辑的脚本,附上代码

https://github.com/ruanqieke/VoiceNative.git

再说明以下 voiceSDK 是 ios的sdk 工具包
java 文件是 安卓的 sdk 工具包
VoiceNative 是接sdk 脚本文件
大家需要做的就是 FunctionUIlayer.js 拖入场景挂载节点上修改
路径名记得修改 AndroidClassName (安卓sdk :语音存放sdk)AndroidClassPlay ( 安卓sdk: 语音播放放sdk) IosClassName (ios sdk)



后面会更新 前后端沟通

20赞

前排顶,坐等更新,

mark一下。留下脚印

坐等更新。

废话不逼逼,直接占座

坐等更新,小白出来实习,刚好公司要做语音功能,没人带,只能看着大佬的教程了

坐等更新

mark,多谢大神,这玩意对我来说帮助太大了哈。。

牛逼了

太赞了,这个一定要支持一下!!!

相互学习,主要看不懂的部分sdk都给搞定了
我觉得比较费劲的是数据传输,因为我们项目的后台服务器是搞个一个单独的,方便以后多个app用一个服务,所以加入了语音房间,和后端人员协商协议,前端对数据处理这里比较麻烦

这个东西要是开源就好了,不行还是自己写吧,主要是数据比较大,要压缩传输,播放什么的还好.

像腾讯语音什么的,效率还不高,因为是通过文件系统来中转,应该弄一个内存的,不要存硬盘再发送,这样效率会快很多.

这个就是开源的sdk啊

感谢分享~~~:+1:

原生的.java文件应该放哪个目录里面,.build 不是自动编译的吗?要怎么把.java文件放进去呢

好像有点厉害

mark

mark

mark