MAudio

cn.tee3.avd

## 类 MAudio

- java.lang.Object
- - cn.tee3.avd.Module
  - - cn.tee3.avd.MAudio

-     public class MAudio
      extends Module

  房间中音频模块接口. 房间音频模块定义房间音频相关如麦克风、扬声器相关操作功能接口。

- - ### 嵌套类概要

    嵌套类
    限定符和类型 | 类和说明
    --- | ---
    `static class` | `MAudio.AudioInfo` 语音激励信息结构.
    `static interface` | `MAudio.Listener` 房间中音频模块回调接口.
    `static interface` | `MAudio.MixerDataListener` 房间中音频混音数据回调接口.
    `static interface` | `MAudio.SubscribeListener`

  - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `static boolean` | `isOpenUsb`

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `int` | `closeMicrophone()` 关闭本地麦克风发布到房间中
    `static void` | `enableAutoRoute(boolean enable)`
    `static MAudio` | `getAudio(Room room)` 获取音频模块接口
    `static java.util.Map<java.lang.String,android.hardware.usb.UsbDevice>` | `getAudioUsbDeviceList(android.content.Context context)` 获取USB中的音频设备，找了几个全向麦，发现有些并未安装规范定义class的值，目前是取列表的时候排除一些非audio设备
    `Device.DeviceStatus` | `getMicrophoneStatus()` 获取本地麦克风状态
    `java.util.List<java.lang.String>` | `getPubAudioUsers()` 获取已经publish的音频用户
    `Device.DeviceStatus` | `getRemoteMicrophoneStatus(java.lang.String userId)` 获取远端麦克风状态
    `int` | `getSpeakerVolume()`
    `java.util.List<java.lang.String>` | `getSubAudioUsers()` 获取已经Subscrib的音频用户
    `void` | `initNativeListener()`
    `boolean` | `isAudioPublished(java.lang.String userId)` 判断用户音频是否已经发布
    `boolean` | `isAudioSubscribed(java.lang.String userId)` 判断用户音频是否已经订阅
    `boolean` | `isAutoRoute()` 自动路由音频设备（麦克风和扬声器）
    `boolean` | `isHandFree()` 设置手机内置 听筒和扬声器切换
    `boolean` | `ismonitorAudioLevel()` 判断是否开启语音激励
    `boolean` | `ismuteMicrophone()` 判断本地麦克风是否静默
    `boolean` | `ismuteSpeaker()` 判断本地扬声器是否静默
    `boolean` | `isOpenMicrophone()` 判断本地麦克风是否已经打开
    `int` | `monitorAudioLevel()` 开启语音激励功能
    `int` | `muteMicrophone()` 本地麦克风静默
    `int` | `muteSpeaker()` 本地扬声器静默
    `static void` | `openAudioUsbDevice(android.hardware.usb.UsbDevice device)` 打开USB音频设备
    `int` | `openMicrophone()` 打开本地麦克风发布到房间中
    `int` | `remotecmdCloseMicrophone(java.lang.String userId)` 命令远端用户关闭麦克风
    `int` | `remotecmdOpenMicrophone(java.lang.String userId)` 命令远端用户打开麦克风
    `void` | `setAutoRoute(boolean isOn)`
    `void` | `setHandFree(boolean isOn)`
    `boolean` | `setListener(MAudio.Listener listener)` 设置音频模块回调接口
    `int` | `setMixerDataListener(MAudio.MixerDataListener cb)` 设置获取音频数据回调接口
    `int` | `setMixerDataListener(MAudio.MixerDataListener cb, int sampleRate, int channels)`
    `void` | `setSpeakerVolume(int value)`
    `boolean` | `setSubscribeListener(MAudio.SubscribeListener listener)`
    `int` | `subscribe(java.lang.String userId)` 订阅一个用户的音频
    `int` | `unmonitorAudioLevel()` 关闭语音激励
    `int` | `unmuteMicrophone()` 本地麦克风取消静默
    `int` | `unmuteSpeaker()` 本地扬声器取消静默
    `int` | `unsubscribe(java.lang.String userId)` 取消订阅一个用户的音频

    - ### 从类继承的方法 cn.tee3.avd.Module

      `getOwnerId, getOwnerName, getRoom, getUserManager, getUserName, isSelfDevice, isSelfUser`

    - ### 从类继承的方法 java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### isOpenUsb

          public static boolean isOpenUsb

  - ### 方法详细资料

    - #### getAudio

          @Nullable
          public static MAudio getAudio(Room room)

      获取音频模块接口
      返回:
        返回音频模块接口。

    - #### setListener

          public boolean setListener(MAudio.Listener listener)

      设置音频模块回调接口
      返回:
        返回错误代码。

    - #### initNativeListener

          public void initNativeListener()

    - #### setSubscribeListener

          public boolean setSubscribeListener(MAudio.SubscribeListener listener)

    - #### openMicrophone

          public int openMicrophone()

      打开本地麦克风发布到房间中
      返回:
        返回错误代码。

    - #### closeMicrophone

          public int closeMicrophone()

      关闭本地麦克风发布到房间中
      返回:
        返回错误代码。

    - #### getMicrophoneStatus

          public Device.DeviceStatus getMicrophoneStatus()

      获取本地麦克风状态
      返回:
        返回麦克风状态。

    - #### isOpenMicrophone

          public boolean isOpenMicrophone()

      判断本地麦克风是否已经打开
      返回:
        返回麦克风是否打开。

    - #### enableAutoRoute

          public static void enableAutoRoute(boolean enable)

    - #### isAutoRoute

          public boolean isAutoRoute()

      自动路由音频设备（麦克风和扬声器）
      返回:
        返回是否自动路由

    - #### setAutoRoute

          public void setAutoRoute(boolean isOn)

    - #### isHandFree

          public boolean isHandFree()

      设置手机内置 听筒和扬声器切换

    - #### setHandFree

          public void setHandFree(boolean isOn)

    - #### muteMicrophone

          public int muteMicrophone()

      本地麦克风静默
      返回:
        返回错误代码。

    - #### unmuteMicrophone

          public int unmuteMicrophone()

      本地麦克风取消静默
      返回:
        返回错误代码。

    - #### ismuteMicrophone

          public boolean ismuteMicrophone()

      判断本地麦克风是否静默

    - #### muteSpeaker

          public int muteSpeaker()

      本地扬声器静默
      返回:
        返回错误代码。

    - #### unmuteSpeaker

          public int unmuteSpeaker()

      本地扬声器取消静默
      返回:
        返回错误代码。

    - #### ismuteSpeaker

          public boolean ismuteSpeaker()

      判断本地扬声器是否静默

    - #### getRemoteMicrophoneStatus

          public Device.DeviceStatus getRemoteMicrophoneStatus(java.lang.String userId)

      获取远端麦克风状态
      返回:
        返回麦克风状态。

    - #### remotecmdOpenMicrophone

          public int remotecmdOpenMicrophone(java.lang.String userId)

      命令远端用户打开麦克风
      返回:
        返回错误代码。

    - #### remotecmdCloseMicrophone

          public int remotecmdCloseMicrophone(java.lang.String userId)

      命令远端用户关闭麦克风
      返回:
        返回错误代码。

    - #### monitorAudioLevel

          public int monitorAudioLevel()

      开启语音激励功能
      返回:
        返回错误代码。

    - #### unmonitorAudioLevel

          public int unmonitorAudioLevel()

      关闭语音激励
      返回:
        返回错误代码。

    - #### ismonitorAudioLevel

          public boolean ismonitorAudioLevel()

      判断是否开启语音激励

    - #### setMixerDataListener

          public int setMixerDataListener(MAudio.MixerDataListener cb)

      设置获取音频数据回调接口
      返回:
        返回错误代码。

    - #### setMixerDataListener

          public int setMixerDataListener(MAudio.MixerDataListener cb,
                                          int sampleRate,
                                          int channels)

    - #### getSpeakerVolume

          public int getSpeakerVolume()

    - #### setSpeakerVolume

          public void setSpeakerVolume(int value)

    - #### subscribe

          public int subscribe(java.lang.String userId)

      订阅一个用户的音频
      返回:
        返回错误代码。

    - #### unsubscribe

          public int unsubscribe(java.lang.String userId)

      取消订阅一个用户的音频
      返回:
        返回错误代码。

    - #### getPubAudioUsers

          public java.util.List<java.lang.String> getPubAudioUsers()

      获取已经publish的音频用户
      返回:
        items 已经pub的用户列表。

    - #### isAudioPublished

          public boolean isAudioPublished(java.lang.String userId)

      判断用户音频是否已经发布
      返回:
        返回是否是已发布的用户。

    - #### getSubAudioUsers

          public java.util.List<java.lang.String> getSubAudioUsers()

      获取已经Subscrib的音频用户
      返回:
        items 已经sub的用户列表。

    - #### isAudioSubscribed

          public boolean isAudioSubscribed(java.lang.String userId)

      判断用户音频是否已经订阅
      返回:
        返回是否是已订阅的用户。

    - #### getAudioUsbDeviceList

          @Nullable
          public static java.util.Map<java.lang.String,android.hardware.usb.UsbDevice> getAudioUsbDeviceList(android.content.Context context)

      获取USB中的音频设备，找了几个全向麦，发现有些并未安装规范定义class的值，目前是取列表的时候排除一些非audio设备
      返回:

    - #### openAudioUsbDevice

          public static void openAudioUsbDevice(android.hardware.usb.UsbDevice device)

      打开USB音频设备
      参数:
        `device` -