音频常用功能
更新时间:2021-05-26
概述
音频常用功能包含开关麦克风、扬声器听筒切换、设置远端用户静音、音量变化监听等。
常用功能
- 开启关闭麦克风
 - 扬声器和听筒切换
 - 设置远端用户音量
 - 获取用户音量信息
 - 开启音量变化监听
 
开启关闭麦克风
该接口可以将麦克风 禁止 或 开启。
/*
 * 开启或关闭麦克风
 * @param  true 开启,false 关闭(默认为 true)
 * @return true 成功,false 失败
 * @discussion 推流时可调用本 API 进行参数配置
 */
[[LVRTCEngine sharedInstance] enableMic:true];
扬声器和听筒切换
该接口可以控制扬声器播放音频和听筒播放音频的切换。
/*
 * 扬声器和听筒切换功能
 * @param enable true 使用扬声器播放音频,false 使用听筒播放音频。(默认 true)
 * @return true 成功,false 失败
 */
[[LVRTCEngine sharedInstance] enableSpeaker:true];
设置远端用户音量
通过 muteAudio 接口可以直接设置远端用户禁音,也可以通过 setPlayVolume 接口控制远端用户的音量。
/*
 * 设置远端用户禁音
 * @param mute 是否禁音标识
 * @param userId 用户 ID
 */
[[LVRTCEngine sharedInstance] muteAudio:false userId:@""];
/*
 * 控制远端音频流音量, 加入房间成功后调用
 * @param volume 音量大小(0,100)
 * @param userId 被控制的用户ID
 */
[[LVRTCEngine sharedInstance] setPlayVolume:50 userId:@""];
获取用户的音量信息
获取远端用户的音量信息。
/*
 * 获取用户的音量信息
 * @param userId 用户 ID
 * @return 用户 ID 对应的音量数据
 */
- (int)getSoundLevelByUserId:(NSString *)userId;
开启音量变化监听
- 
API 调用
/* 开启音量变化监听,并设置音量变化监听回调频率 */ [[LVRTCEngine sharedInstance] startSoundLevelMonitor:100]; /* 声音数据回调参数设置 */ [[LVRTCEngine sharedInstance] setAudioRecordFlag:LVAudioRecordTypeNone]; - 
音量变化监听回调
打开音量变化监听方法才会生效
startSoundLevelMonitor执行/// 远端用户音量变化的通知,该回调通需要调用打开音量变化监听方法才会生效 startSoundLevelMonitor,该回调频率可以调用 startSoundLevelMonitor: /// @param soundLevels 远端用户音量信息 - (void)OnAudioVolumeUpdate:(NSArray<LVAudioVolume *> *)soundLevels; - 
LVAudioVolume 用户音量信息类
OnAudioVolumeUpdate回调 会告诉是哪个用户的音量变化了,和变化后的音量信息/* / 用户音量信息 */ @interface LVAudioVolume : NSObject /* / 用户标识 */ @property (nullable, nonatomic, copy) NSString* userId; /* / 音量 */ @property (nonatomic, assign) int volume; @end - 
设置音频数据回调类型
通过设置音频数据回调类型,可以控制回调数据的类型,例如只回调远端用户音量数据或者本地采集的音量数据
/** * 音频数据回调类型(声音数据录制模式) */ typedef NS_ENUM( NSInteger, LVAudioRecordType ) { /** * 不需要回调音频数据 */ LVAudioRecordTypeNone = 0, /** * 只回调远端用户数据 */ LVAudioRecordTypePlayBack = 0x01, /** * 只回调本地 mic 采集的数据 */ LVAudioRecordTypeMicrophone = 0x02, /** * 回调混音之后的音频数据 */ LVAudioRecordTypeMix = 0x04, }; 
停止音量变化的监听
调用 stopSoundLevelMonitor 方法就可以停止音量变化监听。
/* 停止音量变化的监听 */
[[LVRTCEngine sharedInstance] stopSoundLevelMonitor];