import { XYRTC } from "./client"; import Logger from "./tools/logger"; import { DeviceTypeMap, IDeviceItem, IDeviceList, ICurrentDevice, DeviceTypeKey } from "./type"; export default class DeviceManager { private sdk; private logger; private deviceList; private currentDevice; private prevDevice; private onCameraChange; private onMicrophoneChange; private onSpeakerChange; constructor(sdk: XYRTC, logger: Logger); /** * 设备管理初始化,获取设备列表和设置当前使用设备 * * @private * @return {*} * @memberof DeviceManager */ private initDevice; /** * 获取设备列表 * * @param {DeviceTypeKey} [type] * @return {*} * @memberof DeviceManager */ getDeviceList(type?: DeviceTypeKey): IDeviceList | IDeviceItem[]; /** * 获取当前使用的设备 * * @param {DeviceTypeKey} [type] * @return {*} * @memberof DeviceManager */ getCurrentDevice(type?: DeviceTypeKey): string | ICurrentDevice; /** * 切换设备 * * @param {DeviceTypeKey} type * @param {string} devId * @memberof DeviceManager */ switchDevice(type: DeviceTypeKey, devId: string): void; /** * 监听设备改变 * * @param {DeviceTypeMap} devType * @memberof DeviceManager */ onMediaDeviceEvent(devType: DeviceTypeMap): void; /** * 设备改变处理 * * @private * @param {DeviceTypeMap} devType * @memberof DeviceManager */ private onDeviceChange; /** * diff设备列表,找出改变的设备,并切换 * * @private * @param {IDeviceItem[]} newDevList 新列表 * @param {IDeviceItem[]} oldDevList 旧列表 * @param {DeviceTypeMap} devType 设备改变 * @memberof DeviceManager */ private diffDeviceList; }