当前知识库站点已不再维护。请移步新版知识库:https://help.rongcloud.cn/

音频编解码参数(IMLib录制语音消息的参数)。

sdk默认的音频编解码参数
发布时间: 2015-08-05 16:58

回答:

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 里的 <integer name="rc_audio_encoding_bit_rate">7950</integer>,iOS 端才可以正常播发。