UNPKG

trtc-electron-sdk

Version:

trtc electron sdk

240 lines (239 loc) 10.9 kB
import { TRTCVoiceReverbType, TRTCVoiceChangerType, TRTCAudioMusicParam, TRTCMusicPlayObserver, TRTCMusicPreloadObserver } from '../../trtc_define'; declare const NodeTRTCEngine: any; /** * 音效管理器 */ export declare class TRTCAudioEffectManager { private logPrefix; private isIPCMode; private nodeAudioEffectManager; private promiseStore; constructor(options: { isIPCMode: boolean; nodeTRTCCloud: typeof NodeTRTCEngine.TRTCCloud | typeof NodeTRTCEngine.RemoteTRTCCloud; }); destroy(): void; /** * 开启耳返 * * 主播开启耳返后,可以在耳机里听到麦克风采集到的自己发出的声音,该特效适用于主播唱歌的应用场景中。 * 需要您注意的是,由于蓝牙耳机的硬件延迟非常高,所以在主播佩戴蓝牙耳机时无法开启此特效,请尽量在用户界面上提示主播佩戴有线耳机。 * 同时也需要注意,并非所有的手机开启此特效后都能达到优秀的耳返效果,我们已经对部分耳返效果不佳的手机屏蔽了该特效。 * * 注意:仅在主播佩戴耳机时才能开启此特效,同时请您提示主播佩戴有线耳机。 * * @param {Boolean} enable - true:开启;false:关闭。 * @returns {Promise<void>} */ enableVoiceEarMonitor(enable: boolean): Promise<void>; /** * 设置耳返音量 * * 通过该接口您可以设置耳返特效中声音的音量大小。 * 注意:如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。 * * @param {Number} volume - 音量大小,取值范围为 0 - 100,默认值:100。 * @returns {Promise<void>} */ setVoiceEarMonitorVolume(volume: number): Promise<void>; /** * 设置人声的混响效果 * * 通过该接口您可以设置人声的混响效果,具体特效请参见枚举定义 {@link TRTCVoiceReverbType}。 * 注意:设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。 * * @param {TRTCVoiceReverbType} type - 混响类型 * @returns {Promise<void>} */ setVoiceReverbType(type: TRTCVoiceReverbType): Promise<void>; /** * 设置人声的变声特效 * * 通过该接口您可以设置人声的变声特效,具体特效请参见枚举定义 {@link TRTCVoiceChangerType}。 * 注意:设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。 * * @param {TRTCVoiceChangerType} type - 变声类型 * @returns {Promise<void>} */ setVoiceChangerType(type: TRTCVoiceChangerType): Promise<void>; /** * 设置语音音量 * * 该接口可以设置语音音量的大小,一般配合音乐音量的设置接口 {@link setAllMusicVolume} 协同使用,用于调谐语音和音乐在混音前各自的音量占比。 * 注意:如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。 * * @param {Number} volume - 音量大小,取值范围为0 - 100,默认值:100。 * @returns {Promise<void>} */ setVoiceCaptureVolume(volume: number): Promise<void>; /** * 设置语音音调 * * 该接口可以设置语音音调,用于实现变调不变速的目的。 * @param {Number} pitch - 音调,取值范围为-1.0f~1.0f,默认值:0.0f。 * @returns {Promise<void>} */ setVoicePitch(pitch: number): Promise<void>; /** * 设置背景音乐的事件回调监听 * * 请在播放背景音乐之前使用该接口设置播放事件回调,以便感知背景音乐的播放进度。 * * @param {TRTCMusicPlayObserver} observer - 背景音乐播放事件回调 * @returns {Promise<void>} */ setMusicObserver(observer: TRTCMusicPlayObserver): Promise<void>; /** * 开始播放背景音乐 * * @param {TRTCAudioMusicParam} musicParam - 背景音乐参数 * @returns {Promise<void>} */ startPlayMusic(param: TRTCAudioMusicParam): Promise<void>; /** * 停止播放背景音乐 * * @param {Number} id - 音乐 ID * @returns {Promise<void>} */ stopPlayMusic(id: number): Promise<void>; /** * 暂停播放背景音乐 * * @param {Number} id 音乐 ID * @returns {Promise<void>} */ pausePlayMusic(id: number): Promise<void>; /** * 恢复播放背景音乐 * * @param {Number} id 音乐 ID * @returns {Promise<void>} */ resumePlayMusic(id: number): Promise<void>; /** * 设置所有背景音乐的本地音量和远端音量的大小 * * 该接口可以设置所有背景音乐的本地音量和远端音量。 * - 本地音量:即主播本地可以听到的背景音乐的音量大小。 * - 远端音量:即观众端可以听到的背景音乐的音量大小。 * * 注意:如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。 * * @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 200。 * @returns {Promise<void>} */ setAllMusicVolume(volume: number): Promise<void>; /** * 设置背景音乐远端播放音量的大小 * * 播放背景音乐混音时使用,用来控制背景音乐在远端播放时的音量大小。 * * @param {Number} id - 音乐 ID * @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 100;默认值:100 * @returns {Promise<void>} */ setMusicPublishVolume(id: number, volume: number): Promise<void>; /** * 设置背景音乐本地播放音量的大小 * * 播放背景音乐混音时使用,用来控制背景音乐在本地播放时的音量大小。 * * @param {Number} id - 音乐 ID * @param {Number} volume - 音量大小,100为正常音量,取值范围为0 - 100;默认值:100 * @returns {Promise<void>} */ setMusicPlayoutVolume(id: number, volume: number): Promise<void>; /** * 调整背景音乐的音调高低 * * @param {Number} id - 音乐 ID。 * @param {Number} pitch - 音调,默认值是0.0f,范围是:[-1 ~ 1] 之间的浮点数。 * @returns {Promise<void>} */ setMusicPitch(id: number, pitch: number): Promise<void>; /** * 调整背景音乐的变速效果 * * @param {Number} id - 音乐 ID。 * @param {Number} speedRate - 速度,默认值是1.0f,范围是:[0.5 ~ 2] 之间的浮点数。 * @returns {Promise<void>} */ setMusicSpeedRate(id: number, speedRate: number): Promise<void>; /** * 获取背景音乐的播放进度(单位:毫秒) * * @param {Number} id - 音乐 ID。 * @return {Promise<Number>|Number} 成功返回当前播放时间,单位:毫秒,失败返回 -1。 */ getMusicCurrentPosInMS(id: number): Promise<number> | number; /** * 获取背景音乐的总时长(单位:毫秒) * * @param {String} path - 音乐文件路径。 * @return {Promise<number>|Number} 成功返回时长,失败返回 -1。 */ getMusicDurationInMS(path: string): Promise<number> | number; /** * 设置背景音乐的播放进度(单位:毫秒) * * 注意:请尽量避免过度频繁地调用该接口,因为该接口可能会再次读写音乐文件,耗时稍高。 * 因此,当用户拖拽音乐的播放进度条时,请在用户完成拖拽操作后再调用本接口。 * 因为 UI 上的进度条控件往往会以很高的频率反馈用户的拖拽进度,如不做频率限制,会导致较差的用户体验。 * @param {Number} id - 音乐 ID * @param {Number} pts - 单位: 毫秒 * @returns {Promise<void>} */ seekMusicToPosInTime(id: number, pts: number): Promise<void>; /** * 调整搓碟的变速效果 * * @param {Number} id - 音乐 ID。 * @param {Number} scratchSpeedRate - 搓碟速度,默认值是1.0f,范围是:[-12.0 ~ 12.0] 之间的浮点数, 速度值正/负表示方向正/反,绝对值大小表示速度快慢。 * 注意:前置条件 preloadMusic 成功。 * @returns {Promise<void>} */ setMusicScratchSpeedRate(id: number, speedRate: number): Promise<void>; /** * 设置预加载事件回调 * * 请在预加载背景音乐之前使用该接口设置回调,以便感知背景音乐的预加载进度。 * @param {TRTCMusicPreloadObserver} observer - 音乐加载监听 * @returns {Promise<void>} */ setPreloadObserver(observer: TRTCMusicPreloadObserver): Promise<void>; /** * 预加载背景音乐 * * 每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。 * 注意: * 1. 预先加载最多同时支持2个不同 ID 的预加载,且预加载时长不超过10分钟,使用完需 stopPlayMusic,否则内存不释放。 * 2. 若该ID对应的音乐正在播放中,预加载会失败,需先调用 stopPlayMusic。 * 3. 当 musicParam 和传入 startPlayMusic 的 musicParam 完全相同时,预加载有效。 * * @param {TRTCAudioMusicParam} preloadParam - 预加载音乐参数。 * @returns {Promise<void>} */ preloadMusic(param: TRTCAudioMusicParam): Promise<void>; /** * 获取背景音乐的音轨数量 * * @param {Number} id - 音乐 ID。 * @returns {Promise<Number>|Number} */ getMusicTrackCount(id: number): Promise<number> | number; /** * 指定背景音乐的播放音轨 * * 注意:音轨总数量可通过 getMusicTrackCount 接口获取。 * * @param {Number} id - 音乐 ID。 * @param {Number} index - 默认播放第一个音轨。取值范围[0, 音轨总数)。 * @returns {Promise<void>} */ setMusicTrack(id: number, trackIndex: number): Promise<void>; private eventHandler; private addPromise; private removePromise; } export default TRTCAudioEffectManager;