Cocos Creator 之iOS 原生语音通讯

写这个之前,并不是不让小伙伴们不去使用第三方,喜欢的小伙伴可以加群继续探讨Cocos Creator 开发,后面会陆续真对Cocos Creator分享一些常用的东西。

群号:367683835

好了,不废话了,先简单讲下原理;因为js与ios以及js与anroid通讯只简单的支持String,int等简单类型,所以我们不能使用bytes,这里我选择用String,不要问我10秒语音转String会有多大,试了就知道了。NSData 通过Base64转成String;然后通过ios与js通讯传输。再通过socket交互,就会达到我们想要的效果。

**

授人以鱼,不如授人以渔。

**

代码:

oc:

NSData *voiceData = [NSData dataWithContentsOfURL:urlAudio];
NSData *amrData = [Tool amrFlileWithDara:voiceData];
NSString *voiceString = [amrData base64EncodedString];
        
NSString *strValue = [Tool URLEncodedString:voiceString];
        
NSString *func1 = [NSString stringWithFormat:@"Game.DataManager.recordComplete('%@',1)", strValue];
    
const char *stringFunc = [func1 UTF8String];
    
ScriptingCore::getInstance()->evalString(stringFunc);

通过发给js转发给socket…js收到再发iOS…进行播放。。。逻辑说了,代码简单的写了下!

收到声音保存直接播放也可以,或者保存为MP3文件,通过JS走完逻辑去调用应该也可以吧?

可以。