音频常用功能

更新时间:2021-05-26

概述

音频常用功能包含开关麦克风扬声器听筒切换设置远端用户静音音量变化监听等。

常用功能

  • 开启关闭麦克风
  • 扬声器和听筒切换
  • 设置远端用户音量
  • 获取用户音量信息
  • 开启音量变化监听

开启关闭麦克风

该接口可以将麦克风 禁止开启

/**
 *  开启或关闭麦克风
 *  @param enbale       true 开启,false 关闭(默认为 true)
 */
mRtcEngine.enableMic(enable);

扬声器和听筒切换

该接口可以控制扬声器播放音频和听筒播放音频的切换

/**
 *  扬声器和听筒切换功能
 *  @param enable       true 使用扬声器播放音频,false 使用听筒播放音频。(默认 true)
 */
mRtcEngine.enableSpeakerphone(false);

设置远端用户音量

通过 setPlayVolume 接口控制远端用户的音量。

/**
 *  设置远端用户音量,加入房间成功后调用
 *  @param userId       String类型,被控制的用户id
 *  @param volume       int类型,音量大小,范围0到100
 */
mRtcEngine.setPlayVolume(userId, 100);

获取用户的音量信息

获取远端用户的音量信息。

/**
 *  获取用户音量大小
 *  @param userId       String类型,被控制的用户id
 *  return       int类型,音量大小,范围0到100
 */
mRtcEngine.getSoundLevelByUserId(userId);

开启音量变化监听

  1. API 调用

    /**
     *  开启音量监听回调,开启后会收到LVRTCCallback.onAudioVolumeUpdate(ArrayList)
     *  @param timeInMs       int类型,回调时间间隔,单位毫秒
     */
    mRtcEngine.startSoundLevelMonitor(100);
    
    /**
     *  设置音频录制模式,可同时设置多种录制模式,录制结果会通过LVRTCCallback.onAudioMixStream() 回调
     *  @param types      AudioRecordType枚举类型,音频录制模式
     */
    mRtcEngine.setAudioRecordFlag(LVConstants.AudioRecordType.NONE);
    
  2. 音量变化监听回调

    打开音量变化监听方法才会生效 startSoundLevelMonitor 执行

    /**
     *  当前用户音量变化的通知,该回调需要调用打开音量变化监听方法才会生效    startSoundLevelMonitor
     *  @param volumes      音量级别信息
     */
    void onAudioVolumeUpdate(ArrayList<LVAudioVolume> volumes);
    
  3. LVAudioVolume 用户音量信息类

    OnCaptureSoundLevelUpdate 回调 会告诉是哪个用户的音量变化了,和变化后的音量信息

    /// 用户音量信息
    public class LVAudioVolume {
    
        /// 用户ID
        public String userId;
        
        /// 音量
        public int volume;
    
    }
    
  4. 设置音频数据回调类型

    通过设置音频数据回调类型,可以控制回调数据的类型,例如只回调远端用户音量数据或者本地采集的音量数据

    /**
     音频数据回调类型(声音数据录制模式)
     */
    public static enum AudioRecordType {
        /**
         * 不需要回调音频数据
         */
        NONE(0),
        
        /**
         * 只回调远端用户数据
         */
        PLAYBACK(1),
        
        /**
         * 只回调本地 mic 采集的数据
         */
        MICPHONE(2),
        
        /**
         * 回调混音之后的音频数据
         */
        MIX(4);
    }
    

停止音量变化的监听

调用 stopSoundLevelMonitor 方法就可以停止音量变化监听。

/**
 * 停止音量监听回调
 */
mRtcEngine.stopSoundLevelMonitor();