Source: DeviceManager.js

import { loggerSdk } from './loggerSdk.js';

const TcccDeviceManagerModule = uni.requireNativePlugin('TcccWorkstationUniPlugin-TcccWorkstationImpl-TxDeviceManagerImpl');

/**
 * 设备管理类
 *
 * @class DeviceManager
 */
export default class DeviceManager {
	constructor() {
		// TcccDeviceManagerModule.getDeviceManager();
	}
	
	/**
	 * 设定本地音频的采集音量
	 * 
	 * @name setAudioCaptureVolume
	 * @param {Object} volume 音量大小,取值范围为0 - 100;默认值:100
	 * @note 如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume
	 * 会有爆音的风险,请谨慎操作。
	 * 
	 * @memberof DeviceManager
	 */
	setAudioCaptureVolume(volume) {
		loggerSdk.info("==> setAudioCaptureVolume,volume="+volume);
		TcccDeviceManagerModule.setAudioCaptureVolume({volume});
	}
	
	/**
	 *  获取本地音频的采集音量
	 * 
	 * @name getAudioCaptureVolume
	 * @memberof DeviceManager
	 * 
	 * @returns 采集音量
	 */
	getAudioCaptureVolume() {
		loggerSdk.info("==> getAudioCaptureVolume");
		return TcccDeviceManagerModule.getAudioCaptureVolume();
	}
	
	/**
	 * 设定远端音频的播放音量
	 * 
   * 该接口会控制 SDK
   * 最终交给系统播放的声音音量,调节效果会影响到本地音频录制文件的音量大小,但不会影响到耳返的音量大小。
	 * 
	 * @name setAudioPlayoutVolume
	 * @param {Object} volume 音量大小,取值范围为0 - 100,默认值:100。
   * @note 如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume
   * 会有爆音的风险,请谨慎操作。
	 * 
	 * @memberof DeviceManager
	 */
	setAudioPlayoutVolume(volume) {
		loggerSdk.info("==> setAudioPlayoutVolume");
		TcccDeviceManagerModule.setAudioPlayoutVolume({volume});
	}
	
	/**
	 * 获取远端音频的播放音量
	 * 
	 * @name getAudioPlayoutVolume
	 * 
	 * @memberof DeviceManager
	 * 
	 * @returns 播放音量
	 */
	getAudioPlayoutVolume() {
		loggerSdk.info("==> getAudioPlayoutVolume");
		return TcccDeviceManagerModule.getAudioPlayoutVolume();
	}
	
	/**
	 * 设置音频路由(仅适用于移动端)
	 * 
	 * 手机有两个音频播放设备:一个是位于手机顶部的听筒,一个是位于手机底部的立体声扬声器。
	 * 
	 * @name setAudioRoute
	 * 
	 * @param {TCCCAudioRoute} route 音频路由。
     * - TCCCAudioRoute.Earpiece设置音频路由为听筒时,声音比较小,只有将耳朵凑近才能听清楚,隐私性较好,适合用于接听电话。
     * - TCCCAudioRoute.Speakerphone 设置音频路由为扬声器时,声音比较大,不用将手机贴脸也能听清,因此可以实现“免提”的功能。
	 * 
	 * @memberof DeviceManager
	 */
	setAudioRoute(route) {
		loggerSdk.info("==> setAudioRoute,route="+route);
		TcccDeviceManagerModule.setAudioRoute({route});
	}
}