MVideo

cn.tee3.avd

## 类 MVideo

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

-     public class MVideo
      extends Module

  房间中视频模块接口. 房间视频模块定义房间中视频发布、订阅功能接口。

- - ### 嵌套类概要

    嵌套类
    限定符和类型 | 类和说明
    --- | ---
    `static class` | `MVideo.Camera` 视频摄像头信息结构.
    `static class` | `MVideo.CameraCapability` 视频采集信息结构.
    `static class` | `MVideo.CameraType` 摄像头类型.
    `static interface` | `MVideo.IInnerListener` 房间中视频模块回调接口.
    `class` | `MVideo.InnerListener`
    `static interface` | `MVideo.Listener` 房间中视频模块回调接口.

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `int` | `attachRender(java.lang.String deviceId, VideoRenderer render)` 关联视频数据和显示对象，在render中显示视频
    `int` | `changeSubscribedVideoQuality(java.lang.String deviceId, VideoOptions.VideoQuality quality)` 更改订阅视频的视频质量
    `int` | `detachRender(java.lang.String deviceId)` 解除摄像头视频数据的所有显示对象关联
    `int` | `detachRender(VideoRenderer render)` 解除某一显示对象与摄像头视频数据的关联
    `android.hardware.Camera` | `getAndroidCamera()` 获取当前使用的android的摄像头对象，每次都要获取，可以返回为null
    `MVideo.Camera` | `getCamera(MVideo.CameraType type)` 获取指定类型的本机摄像头信息
    `MVideo.Camera` | `getCamera(java.lang.String deviceId)` 获取指定设备Id的摄像头信息
    `java.util.List<MVideo.CameraCapability>` | `getCameraCapabilities(MVideo.CameraType type)`
    `java.util.List<MVideo.CameraCapability>` | `getCameraCapability(java.lang.String deviceId)` 获取指定设备Id的摄像头采集参数列表
    `java.lang.String` | `getCurrentCameraId()` 获取当前使用的摄像头Id
    `MVideo.CameraType` | `getCurrentCameraType()` 获取当前使用的摄像头类型
    `MVideo.CameraCapability` | `getCurrentRealCaptureCapability()` 获取preview和publish摄像头的真实分辨率
    `java.util.List<MVideo.Camera>` | `getLocalCameras()` 获取机摄像头设备列表
    `java.util.List<MVideo.Camera>` | `getPublishedCameras()` 获取房间中已发布视频摄像头列表
    `java.util.List<MVideo.Camera>` | `getRemoteCameras(java.lang.String userId)` 获取某用户的缺省摄像头Id
    `java.util.List<MVideo.Camera>` | `getSubscribedCameras()` 获取本用户订阅的摄像头视频列表
    `static MVideo` | `getVideo(Room room)` 获取房间内视频模块接口
    `static boolean` | `isAutoRotation()`
    `boolean` | `isCameraPublished(MVideo.CameraType type)`
    `boolean` | `isCameraPublished(java.lang.String deviceId)` 判断摄像头是否已经发布到房间中
    `boolean` | `isCameraSubscribed(java.lang.String deviceId)` 判断摄像头是否已经被本用户订阅
    `boolean` | `ispublishedLocalCamera()` 判断本地摄像头是否已经打开
    `int` | `muteLocalCamera(java.lang.String deviceId)` 已经published或preview的视频暂停：视频卡住，且也不发送到网络上
    `int` | `previewLocalCamera(MVideo.Camera fakeDevice, FakeVideoCapturer capturer, VideoRenderer render)` 预览模拟摄像头视频
    `int` | `previewLocalCamera(MVideo.CameraType type, VideoRenderer render)` 预览本机前置或者后置摄像头视频
    `int` | `previewLocalCamera(java.lang.String deviceId, VideoRenderer render)` 预览本地某一摄像头视频
    `int` | `publishLocalCamera(MVideo.Camera device)` 发布摄像头视频
    `int` | `publishLocalCamera(MVideo.Camera fakeDevice, FakeVideoCapturer capturer)` 发布模拟摄像头视频
    `int` | `publishLocalCamera(MVideo.CameraType type)`
    `int` | `publishLocalCamera(MVideo.CameraType type, boolean isUseTexture)` 发布特定类型摄像头视频，并设定创建VideoCapture的工作模式（YUV或Texture）
    `int` | `remotecmdPublishCamera(MVideo.Camera camera)` 命令远端用户发布某一摄像头视频
    `int` | `remotecmdUnpublishCamera(java.lang.String deviceId)` 命令远端用户取消发布摄像头视频
    `static void` | `setAutoRotation(boolean enable)` 启用或者停止视频自动旋转
    `void` | `setCameraOrientationOffset(int orientation)` 设置相机偏移角度
    `int` | `setCaptureCapability(MVideo.CameraType type, MVideo.CameraCapability cap)`
    `int` | `setCaptureCapability(java.lang.String deviceId, MVideo.CameraCapability cap)` 设置指定设备Id的摄像头采集参数当前选项
    `boolean` | `setListener(MVideo.Listener listener)` 设置房间聊天模块回调接口
    `int` | `setVideoBitrate(java.lang.String deviceId, int minBitrateBps, int maxBitrateBps)` 设置视频动态码率调整的范围，最小和最大比特率，
    `int` | `subscribe(java.lang.String deviceId)` 订阅摄像头视频
    `int` | `subscribeWithStreamType(java.lang.String deviceId, VideoOptions.StreamType stream)` 订阅摄像头视频指定视频质量视频
    `int` | `subscribeWithVideoQuality(java.lang.String deviceId, VideoOptions.VideoQuality quality)` 订阅摄像头视频指定视频质量视频
    `int` | `switchLocalCamera(java.lang.String fromId, java.lang.String toId)` 切换视频源
    `int` | `switchToLocalCamera()` 判断本地摄像头是否已经打开
    `int` | `switchToLocalCamera(MVideo.CameraType toType)` 切换特定类型摄像头视频源
    `int` | `unmuteLocalCamera(java.lang.String deviceId)` 取消视频暂停
    `int` | `unpreviewLocalCamera()` 取消预览缺省摄像头视频
    `int` | `unpreviewLocalCamera(java.lang.String deviceId)` 取消预览摄像头视频
    `int` | `unpublishLocalCamera()` 取消发布缺省摄像头视频
    `int` | `unpublishLocalCamera(java.lang.String deviceId)` 取消发布摄像头视频
    `int` | `unsubscribe(java.lang.String deviceId)` 取消订阅摄像头视频
    `int` | `updateCameraData(java.lang.String deviceId, int level, java.lang.String description)` 摄像头数据更改

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

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

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

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

- - ### 方法详细资料

    - #### getVideo

          @Nullable
          public static MVideo getVideo(Room room)

      获取房间内视频模块接口
      返回:
        返回视频模块接口指针。

    - #### setListener

          public boolean setListener(MVideo.Listener listener)

      设置房间聊天模块回调接口
      返回:
        返回错误代码。

    - #### setAutoRotation

          public static void setAutoRotation(boolean enable)

      启用或者停止视频自动旋转

    - #### isAutoRotation

          public static boolean isAutoRotation()

    - #### previewLocalCamera

          public int previewLocalCamera(MVideo.CameraType type,
                                        VideoRenderer render)

      预览本机前置或者后置摄像头视频
      返回:
        返回错误代码；若不支持此操作返回 Err_Not_Available。

    - #### previewLocalCamera

          public int previewLocalCamera(MVideo.Camera fakeDevice,
                                        FakeVideoCapturer capturer,
                                        VideoRenderer render)

      预览模拟摄像头视频
      返回:
        返回错误代码。 模拟摄像头用于在房间中导入特定已经存在的视频数据流，比如视频文件、录播系统视频流等。 接口需要先生成deviceId,请调用createFakeDeviceID生成 注意：此函数必须用 unpreviewLocalCamera(String deviceId)来取消发布，不能用无参数函数；

    - #### unpreviewLocalCamera

          public int unpreviewLocalCamera()

      取消预览缺省摄像头视频
      返回:
        返回错误代码。

    - #### publishLocalCamera

          public int publishLocalCamera(MVideo.CameraType type)

    - #### publishLocalCamera

          public int publishLocalCamera(MVideo.CameraType type,
                                        boolean isUseTexture)

      发布特定类型摄像头视频，并设定创建VideoCapture的工作模式（YUV或Texture）
      参数:
        `isUseTexture` - VideoCapture 是否使用Texture模式采样
      返回:
        返回错误代码；若不支持此操作返回 Err_Not_Available。

    - #### publishLocalCamera

          public int publishLocalCamera(MVideo.Camera fakeDevice,
                                        FakeVideoCapturer capturer)

      发布模拟摄像头视频
      返回:
        返回错误代码。

    - #### ispublishedLocalCamera

          public boolean ispublishedLocalCamera()

      判断本地摄像头是否已经打开
      返回:
        返回摄像头是否打开，只在前后摄像头模式使用。

    - #### switchToLocalCamera

          public int switchToLocalCamera()

      判断本地摄像头是否已经打开
      返回:
        返回摄像头是否打开，只在前后摄像头模式使用。

    - #### switchToLocalCamera

          public int switchToLocalCamera(MVideo.CameraType toType)

      切换特定类型摄像头视频源
      返回:
        返回错误代码；若不支持此操作返回 Err_Not_Available。

    - #### getCurrentCameraType

          public MVideo.CameraType getCurrentCameraType()

      获取当前使用的摄像头类型
      返回:
        返回摄像头类型。

    - #### getCurrentCameraId

          public java.lang.String getCurrentCameraId()

      获取当前使用的摄像头Id
      返回:
        返回摄像头类型。

    - #### unpublishLocalCamera

          public int unpublishLocalCamera()

      取消发布缺省摄像头视频
      返回:
        返回错误代码。

    - #### previewLocalCamera

          public int previewLocalCamera(java.lang.String deviceId,
                                        VideoRenderer render)

      预览本地某一摄像头视频
      返回:
        返回错误代码。

    - #### unpreviewLocalCamera

          public int unpreviewLocalCamera(java.lang.String deviceId)

      取消预览摄像头视频
      返回:
        返回错误代码。

    - #### publishLocalCamera

          public int publishLocalCamera(MVideo.Camera device)

      发布摄像头视频
      返回:
        返回错误代码。

    - #### unpublishLocalCamera

          public int unpublishLocalCamera(java.lang.String deviceId)

      取消发布摄像头视频
      返回:
        返回错误代码。

    - #### switchLocalCamera

          public int switchLocalCamera(java.lang.String fromId,
                                       java.lang.String toId)

      切换视频源
      返回:
        返回错误代码。

    - #### updateCameraData

          public int updateCameraData(java.lang.String deviceId,
                                      int level,
                                      java.lang.String description)

      摄像头数据更改

    - #### muteLocalCamera

          public int muteLocalCamera(java.lang.String deviceId)

      已经published或preview的视频暂停：视频卡住，且也不发送到网络上
      返回:
        返回错误代码。

    - #### unmuteLocalCamera

          public int unmuteLocalCamera(java.lang.String deviceId)

      取消视频暂停
      返回:
        返回错误代码。

    - #### subscribe

          public int subscribe(java.lang.String deviceId)

      订阅摄像头视频
      返回:
        返回错误代码。

    - #### subscribeWithStreamType

          public int subscribeWithStreamType(java.lang.String deviceId,
                                             VideoOptions.StreamType stream)

      订阅摄像头视频指定视频质量视频

    - #### subscribeWithVideoQuality

          public int subscribeWithVideoQuality(java.lang.String deviceId,
                                               VideoOptions.VideoQuality quality)

      订阅摄像头视频指定视频质量视频
      返回:
        返回错误代码。

    - #### changeSubscribedVideoQuality

          public int changeSubscribedVideoQuality(java.lang.String deviceId,
                                                  VideoOptions.VideoQuality quality)

      更改订阅视频的视频质量
      返回:
        返回错误代码。

    - #### unsubscribe

          public int unsubscribe(java.lang.String deviceId)

      取消订阅摄像头视频
      返回:
        返回错误代码。

    - #### getPublishedCameras

          public java.util.List<MVideo.Camera> getPublishedCameras()

      获取房间中已发布视频摄像头列表
      返回:
        返回摄像头设备列表。

    - #### isCameraPublished

          public boolean isCameraPublished(java.lang.String deviceId)

      判断摄像头是否已经发布到房间中

    - #### isCameraPublished

          public boolean isCameraPublished(MVideo.CameraType type)

    - #### getSubscribedCameras

          public java.util.List<MVideo.Camera> getSubscribedCameras()

      获取本用户订阅的摄像头视频列表
      返回:
        返回摄像头设备列表。

    - #### isCameraSubscribed

          public boolean isCameraSubscribed(java.lang.String deviceId)

      判断摄像头是否已经被本用户订阅

    - #### getLocalCameras

          public java.util.List<MVideo.Camera> getLocalCameras()

      获取机摄像头设备列表
      返回:
        返回摄像头设备列表。

    - #### getCamera

          @Nullable
          public MVideo.Camera getCamera(MVideo.CameraType type)

      获取指定类型的本机摄像头信息
      返回:
        返回摄像头设备信息。

    - #### getCamera

          public MVideo.Camera getCamera(java.lang.String deviceId)

      获取指定设备Id的摄像头信息
      返回:
        返回摄像头信息。

    - #### getCameraCapability

          public java.util.List<MVideo.CameraCapability> getCameraCapability(java.lang.String deviceId)

      获取指定设备Id的摄像头采集参数列表
      返回:
        返回采集参数列表。

    - #### getCameraCapabilities

          @Nullable
          public java.util.List<MVideo.CameraCapability> getCameraCapabilities(MVideo.CameraType type)

    - #### setCaptureCapability

          public int setCaptureCapability(java.lang.String deviceId,
                                          MVideo.CameraCapability cap)

      设置指定设备Id的摄像头采集参数当前选项
      返回:
        返回错误代码。

    - #### setCaptureCapability

          public int setCaptureCapability(MVideo.CameraType type,
                                          MVideo.CameraCapability cap)

    - #### remotecmdPublishCamera

          public int remotecmdPublishCamera(MVideo.Camera camera)

      命令远端用户发布某一摄像头视频
      返回:
        返回错误代码。

    - #### remotecmdUnpublishCamera

          public int remotecmdUnpublishCamera(java.lang.String deviceId)

      命令远端用户取消发布摄像头视频
      返回:
        返回错误代码。

    - #### attachRender

          public int attachRender(java.lang.String deviceId,
                                  VideoRenderer render)

      关联视频数据和显示对象，在render中显示视频
      返回:
        返回错误代码。

    - #### detachRender

          public int detachRender(java.lang.String deviceId)

      解除摄像头视频数据的所有显示对象关联
      返回:
        返回错误代码。

    - #### detachRender

          public int detachRender(VideoRenderer render)

      解除某一显示对象与摄像头视频数据的关联

    - #### getRemoteCameras

          public java.util.List<MVideo.Camera> getRemoteCameras(java.lang.String userId)

      获取某用户的缺省摄像头Id

    - #### getAndroidCamera

          @Nullable
          public android.hardware.Camera getAndroidCamera()

      获取当前使用的android的摄像头对象，每次都要获取，可以返回为null
      返回:
        返回摄像头对象。

    - #### getCurrentRealCaptureCapability

          public MVideo.CameraCapability getCurrentRealCaptureCapability()

      获取preview和publish摄像头的真实分辨率
      返回:
        返回分辨率。

    - #### setVideoBitrate

          public int setVideoBitrate(java.lang.String deviceId,
                                     int minBitrateBps,
                                     int maxBitrateBps)

      设置视频动态码率调整的范围，最小和最大比特率，
      返回:
        返回错误代码。

    - #### setCameraOrientationOffset

          public void setCameraOrientationOffset(int orientation)

      设置相机偏移角度