MediaContext
MediaContext 类。
MediaContext 类提供的方法用于:
- 管理本地音视频设备。
- 播放本地音频。
- 渲染本地视频。
getLocalDevices
获取本地设备。
abstract fun getLocalDevices(deviceType: AgoraEduContextDeviceType): List<AgoraEduContextDeviceInfo>
参数
- deviceType
- 设备类型。详见 AgoraEduContextDeviceType。
返回值
由 AgoraEduContextDeviceInfo 组成的设备列表。
openLocalDevice
开启指定本地设备。
abstract fun openLocalDevice(deviceInfo: AgoraEduContextDeviceInfo, callback: EduContextCallback<Unit>? = null)
参数
- deviceInfo
- 设备信息,详见 AgoraEduContextDeviceInfo。
- callback
- 通过 EduContextCallback 异步获取调用结果。
closeLocalDevice
关闭本地设备。
abstract fun closeLocalDevice(deviceInfo: AgoraEduContextDeviceInfo, callback: EduContextCallback<Unit>? = null)
参数
- deviceInfo
- 设备信息,详见 AgoraEduContextDeviceInfo。
- callback
- 通过 EduContextCallback 异步获取调用结果。
getLocalDeviceState
获取本地设备状态。
abstract fun getLocalDeviceState(deviceInfo: AgoraEduContextDeviceInfo, callback: EduContextCallback<AgoraEduContextDeviceState2>?)
参数
- deviceInfo
- 设备信息,详见 AgoraEduContextDeviceInfo。
- callback
- 通过 EduContextCallback 异步返回设备状态 AgoraEduContextDeviceState2。
startRenderLocalVideo
开始渲染视频流。
abstract fun startRenderLocalVideo(config: EduContextRenderConfig, container: ViewGroup, streamUuid: String)
该方法在加入房间前后均可调用。
参数
- config
- 视频渲染配置,详见 EduContextRenderConfig。
- container
- 渲染的 View。
- streamUuid
- 待渲染的流 ID。
startRenderVideoFromCdn
开始渲染 CDN 视频流。
abstract fun startRenderVideoFromCdn( config: EduContextRenderConfig, container: ViewGroup, streamUrl: String, renderVideoListener: (() -> Unit)? = null )
参数
- config
- 视频渲染配置,详见 EduContextRenderConfig。
- container
- 渲染的 View。
- streamUrl
- CDN 流地址。
stopRenderLocalVideo
停止渲染视频流。
abstract fun stopRenderLocalVideo(streamUuid: String)
该方法在加入房间前后均可调用。
参数
- streamUuid
- 流 ID。如果你想要在加入房间前停止预览摄像头采集的视频流,可将 streamUuid 设为 0。
stopRenderVideoFromCdn
停止渲染 CDN 视频流。
参数
- streamUuid
- 流 ID。
startAudioMixing
开始混音。
abstract fun startAudioMixing(filepath: String, loopback: Boolean, replace: Boolean, cycle: Int)
将麦克风采集的音频流与本地客户端的音乐文件中的音频混合,以便远端用户能更为清晰地听到该音乐文件。
参数
- filePath
- 需要进行混音的音乐文件路径。
- loopback
- 是否只在本地客户端播放音乐文件。
- replace
- 是否将麦克风采集的音频替换为音乐文件。
- cycle
- 音乐文件的播放次数。设为 -1 表示循环播放。
stopAudioMixing
停止混音。
abstract fun stopAudioMixing()
startPlayAudio
开始播放音频流。
abstract fun startPlayAudio(roomUuid: String, streamUuid: String)
参数
- roomUuid
- 房间 ID。
- streamUuid
- 流 ID。
startPlayAudioFromCdn
开始播放 CDN 音频流。
abstract fun startPlayAudioFromCdn(streamUrl: String, startPos: Long? = 0)
参数
- streamUuid
- CDN 流地址。
- startPos
- 开始播放的位置。
stopPlayAudio
停止播放音频流。
abstract fun stopPlayAudio(roomUuid: String, streamUuid: String)
参数
- roomUuid
- 房间 ID。
- streamUuid
- 流 ID。
stopPlayAudioFromCdn
停止播放 CDN 音频流。
abstract fun stopPlayAudioFromCdn(streamUrl: String)
参数
- streamUrl
- CDN 流地址。
setAudioMixingPosition
设置用于混音的音乐文件的起始播放位置。
abstract fun setAudioMixingPosition(position: Int)
参数
- position
- 音乐文件的起始播放位置(毫秒)。
getSnapshot
视频流截图。
abstract fun getSnapshot( roomUuid: String, streamUuid: String, filePath: String, callback: EduContextCallback<FcrSnapshotInfo>? )
从视频流中截图,生成 JPG 文件。每次调用此 API 需间隔至少一秒。
参数
- roomUuid
- 房间 ID。
- streamUuid
- 流 ID
- filePath
- 保存截图的本地绝对路径。需完整写出文件名,例如 xxx/xxx/example.jpg。
- callback
- 调用成功,则返回截图信息 FcrSnapshotInfo。
addAudioRawDataObserver
注册音频管道某个环节的原始数据监听。
abstract fun addAudioRawDataObserver( observer: FcrMediaRawDataObserver, config: FcrAudioRawDataConfig? = FcrAudioRawDataConfig() )
参数
- observer
- 观察者,详见 FcrAudioRawDataObserver。
- config
- 音频管道的输出配置,详见 FcrAudioRawDataConfig。
setAudioRawDataConfig
设置音频管道中每个环节的输出配置。
可添加多个观察者,以最后一次设置为准。
参数
- config
- 观察者,详见 FcrAudioRawDataConfig。
- position
- 音频管道的输出位置,详见 FcrAudioRawDataPosition。
removeAudioRawDataObserver
移除音频管道某个环节的原始音频数据监听。
abstract fun removeAudioRawDataObserver(observer: FcrMediaRawDataObserver)
参数
- observer
- 观察者,详见 FcrAudioRawDataObserver。