iOS 端:
SDK 由于平台兼容和产品设计,会将音频编码为 AMR 文件发送
1. 其中 RCVoiceMessage 通过以下方法初始化,传入的参数audioData为wave音频原始数据
/**
* 由指定信息创建声音消息实例
*
* @param audioData 音频数据
* @param duration 时长
*/
+ (instancetype)messageWithAudio:(NSData *)audioData duration:(long)duration;
2. SDK 会从上述 audioData 音频提取并编码为 AMR 并转化为 json data发送
具体:将 WAVE 文件数据以 8KHz/单声道(AVNumberOfChannelsKey =1)/位深16(AVLinearPCMBitDepthKey=16)的频率采样,编码为12.2 kbps的 AMR 文件
3. 将 AMR 文件转换为 json 格式发送
综上,如果您使用 IMLib 发送音频,请注意以上参数。
如果默认的RCVoiceMessage音频不能满足您的需求,您可以使用自定义消息,自行完成音频的编解码和消息的显示即可。
自定义消息可以参考:http://blog.rongcloud.cn/?p=514
ps:IMkit 默认使用的录音参数如下,您可以参考:
NSDictionary *settings = @{AVFormatIDKey: @(kAudioFormatLinearPCM),
AVSampleRateKey: @8000.00f,
AVNumberOfChannelsKey: @1,
AVLinearPCMBitDepthKey: @16,
AVLinearPCMIsNonInterleaved: @NO,
AVLinearPCMIsFloatKey: @NO,
AVLinearPCMIsBigEndianKey: @NO};
Android 端:
设置 rc_configuration.xml 里的 7950,iOS 端才可以正常播发。