ITXAudioEffectManager
Copyright (c) 2021 Tencent. All rights reserved.
Module: 背景音乐、短音效和人声特效的管理类
Function: 用于对背景音乐、短音效和人声特效进行设置的管理类
ITXAudioEffectManager
ITXMusicPreloadObserver
函数列表 | 描述 |
背景音乐预加载进度 | |
背景音乐预加载出错 |
ITXMusicPlayObserver
函数列表 | 描述 |
背景音乐开始播放 | |
背景音乐的播放进度 | |
背景音乐已经播放完毕 |
ITXAudioEffectManager
函数列表 | 描述 |
开启耳返 | |
设置耳返音量 | |
设置人声的混响效果 | |
设置人声的变声特效 | |
设置语音音量 | |
设置语音音调 | |
设置背景音乐的事件回调接口 | |
开始播放背景音乐 | |
停止播放背景音乐 | |
暂停播放背景音乐 | |
恢复播放背景音乐 | |
设置所有背景音乐的本地音量和远端音量的大小 | |
设置某一首背景音乐的远端音量的大小 | |
设置某一首背景音乐的本地音量的大小 | |
调整背景音乐的音调高低 | |
调整背景音乐的变速效果 | |
获取背景音乐的播放进度(单位:毫秒) | |
获取背景音乐的总时长(单位:毫秒) | |
设置背景音乐的播放进度(单位:毫秒) | |
调整搓碟的变速效果 | |
设置预加载事件回调 | |
预加载背景音乐 | |
获取背景音乐的音轨数量 | |
指定背景音乐的播放音轨 |
结构体类型
函数列表 | 描述 |
背景音乐的播放控制信息 |
枚举类型
枚举类型 | 描述 |
混响特效 | |
变声特效 |
onLoadProgress
onLoadProgress
void onLoadProgress | (int id |
| int progress) |
背景音乐预加载进度
onLoadError
onLoadError
void onLoadError | (int id |
| int errorCode) |
背景音乐预加载出错
参数 | 描述 |
errorCode | -4001:打开文件失败,如音频数据无效,FFMPEG 协议未找到等;-4002:解码失败,如音频文件损坏,网络音频文件服务器无法访问等;-4003:预加载数量超上限,请先调用 stopPlayMusic 释放无用的预加载;-4005:非法路径导致打开文件失败,请检查您传入的路径参数是否指向一个合法的音乐文件;-4006:非法URL导致打开文件失败,请用浏览器检查您传入的 URL 地址是否可以下载到期望的音乐文件;-4007:无音频流导致打开文件失败,请确认您传入的文件是否是合法的音频文件,以及文件是否被损坏;-4008:格式不支持导致打开文件失败,请确认您传入的文件格式是否是支持的文件格式,移动端支持【mp3,aac,m4a,wav,ogg,mp4,mkv】,桌面端支持 【mp3,aac,m4a,wav,mp4,mkv】。 |
onStart
onStart
void onStart | (int id |
| int errCode) |
背景音乐开始播放
在背景音乐开始播放成功或者失败时调用。
参数 | 描述 |
errCode | 错误码。0: 开始播放成功;-4001:打开文件失败,如音频数据无效,FFMPEG 协议未找到等;-4005:非法路径导致打开文件失败,请检查您传入的路径参数是否指向一个合法的音乐文件;-4006:非法URL导致打开文件失败,请用浏览器检查您传入的 URL 地址是否可以下载到期望的音乐文件;-4007:无音频流导致打开文件失败,请确认您传入的文件是否是合法的音频文件,以及文件是否被损坏;-4008:格式不支持导致打开文件失败,请确认您传入的文件格式是否是支持的文件格式,移动端支持【mp3,aac,m4a,wav,ogg,mp4,mkv】,桌面端支持 【mp3,aac,m4a,wav,mp4,mkv】。 |
id | 音乐 ID。 |
onPlayProgress
onPlayProgress
void onPlayProgress | (int id |
| long curPtsMS |
| long durationMS) |
背景音乐的播放进度
onComplete
onComplete
void onComplete | (int id |
| int errCode) |
背景音乐已经播放完毕
在背景音乐播放完毕或播放错误时调用。
参数 | 描述 |
errCode | 错误码。0: 播放结束;-4002: 解码失败,如音频文件损坏,网络音频文件服务器无法访问等。 |
id | 音乐 ID。 |
enableVoiceEarMonitor
enableVoiceEarMonitor
void enableVoiceEarMonitor | (bool enable) |
开启耳返
主播开启耳返后,可以在耳机里听到麦克风采集到的自己发出的声音,该特效适用于主播唱歌的应用场景中。
需要您注意的是,由于蓝牙耳机的硬件延迟非常高,所以在主播佩戴蓝牙耳机时无法开启此特效,请尽量在用户界面上提示主播佩戴有线耳机。
同时也需要注意,并非所有的手机开启此特效后都能达到优秀的耳返效果,我们已经对部分耳返效果不佳的手机屏蔽了该特效。
参数 | 描述 |
enable | true:开启;false:关闭。 |
注意
仅在主播佩戴耳机时才能开启此特效,同时请您提示主播佩戴有线耳机。
setVoiceEarMonitorVolume
setVoiceEarMonitorVolume
void setVoiceEarMonitorVolume | (int volume) |
设置耳返音量
通过该接口您可以设置耳返特效中声音的音量大小。
参数 | 描述 |
volume | 音量大小,取值范围为 0 - 100,默认值:100。 |
注意
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
setVoiceReverbType
setVoiceReverbType
void setVoiceReverbType |
设置人声的混响效果
注意
设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。
setVoiceChangerType
setVoiceChangerType
void setVoiceChangerType |
设置人声的变声特效
注意
设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。
setVoiceCaptureVolume
setVoiceCaptureVolume
void setVoiceCaptureVolume | (int volume) |
设置语音音量
参数 | 描述 |
volume | 音量大小,取值范围为0 - 100,默认值:100。 |
注意
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
setVoicePitch
setVoicePitch
void setVoicePitch | (double pitch) |
设置语音音调
该接口可以设置语音音调,用于实现变调不变速的目的。
参数 | 描述 |
pitch | 音调,取值范围为-1.0f~1.0f,默认值:0.0f。 |
setMusicObserver
setMusicObserver
void setMusicObserver | (int musicId |
|
设置背景音乐的事件回调接口
请在播放背景音乐之前使用该接口设置播放事件回调,以便感知背景音乐的播放进度。
参数 | 描述 |
musicId | 音乐 ID。 |
observer | 具体参考 ITXMusicPlayObserver 中定义接口。 |
注意
1. 如果该 ID 不需要使用,observer 可设置为 NULL 彻底释放。
startPlayMusic
startPlayMusic
void startPlayMusic |
开始播放背景音乐
每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。
参数 | 描述 |
musicParam | 音乐参数。 |
注意
1. 如果要多次播放同一首背景音乐,请不要每次播放都分配一个新的 ID,我们推荐使用相同的 ID。
2. 若您希望同时播放多首不同的音乐,请为不同的音乐分配不同的 ID 进行播放。
3. 如果使用同一个 ID 播放不同音乐,SDK 会先停止播放旧的音乐,再播放新的音乐。
stopPlayMusic
stopPlayMusic
void stopPlayMusic | (int id) |
停止播放背景音乐
参数 | 描述 |
id | 音乐 ID。 |
pausePlayMusic
pausePlayMusic
void pausePlayMusic | (int id) |
暂停播放背景音乐
参数 | 描述 |
id | 音乐 ID。 |
resumePlayMusic
resumePlayMusic
void resumePlayMusic | (int id) |
恢复播放背景音乐
参数 | 描述 |
id | 音乐 ID。 |
setAllMusicVolume
setAllMusicVolume
void setAllMusicVolume | (int volume) |
设置所有背景音乐的本地音量和远端音量的大小
该接口可以设置所有背景音乐的本地音量和远端音量。
本地音量:即主播本地可以听到的背景音乐的音量大小。
远端音量:即观众端可以听到的背景音乐的音量大小。
参数 | 描述 |
volume | 音量大小,取值范围为0 - 100,默认值:60。 |
注意
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
setMusicPublishVolume
setMusicPublishVolume
void setMusicPublishVolume | (int id |
| int volume) |
设置某一首背景音乐的远端音量的大小
该接口可以细粒度地控制每一首背景音乐的远端音量,也就是观众端可听到的背景音乐的音量大小。
参数 | 描述 |
id | 音乐 ID。 |
volume | 音量大小,取值范围为0 - 100;默认值:60。 |
注意
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
setMusicPlayoutVolume
setMusicPlayoutVolume
void setMusicPlayoutVolume | (int id |
| int volume) |
设置某一首背景音乐的本地音量的大小
该接口可以细粒度地控制每一首背景音乐的本地音量,也就是主播本地可以听到的背景音乐的音量大小。
参数 | 描述 |
id | 音乐 ID。 |
volume | 音量大小,取值范围为0 - 100,默认值:60。 |
注意
如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
setMusicPitch
setMusicPitch
void setMusicPitch | (int id |
| float pitch) |
调整背景音乐的音调高低
参数 | 描述 |
id | 音乐 ID。 |
pitch | 音调,默认值是0.0f,范围是:[-1 ~ 1] 之间的浮点数。 |
setMusicSpeedRate
setMusicSpeedRate
void setMusicSpeedRate | (int id |
| float speedRate) |
调整背景音乐的变速效果
参数 | 描述 |
id | 音乐 ID。 |
speedRate | 速度,默认值是1.0f,范围是:[0.5 ~ 2] 之间的浮点数。 |
getMusicCurrentPosInMS
getMusicCurrentPosInMS
long getMusicCurrentPosInMS | (int id) |
获取背景音乐的播放进度(单位:毫秒)
参数 | 描述 |
id | 音乐 ID。 |
返回值说明:
成功返回当前播放时间,单位:毫秒,失败返回 -1。
getMusicDurationInMS
getMusicDurationInMS
long getMusicDurationInMS | (char* path) |
获取背景音乐的总时长(单位:毫秒)
参数 | 描述 |
path | 音乐文件路径。 |
返回值说明:
成功返回时长,失败返回 -1。
seekMusicToPosInTime
seekMusicToPosInTime
void seekMusicToPosInTime | (int id |
| int pts) |
设置背景音乐的播放进度(单位:毫秒)
参数 | 描述 |
id | 音乐 ID。 |
pts | 单位: 毫秒。 |
注意
请尽量避免过度频繁地调用该接口,因为该接口可能会再次读写音乐文件,耗时稍高。
因此,当用户拖拽音乐的播放进度条时,请在用户完成拖拽操作后再调用本接口。
因为 UI 上的进度条控件往往会以很高的频率反馈用户的拖拽进度,如不做频率限制,会导致较差的用户体验。
setMusicScratchSpeedRate
setMusicScratchSpeedRate
void setMusicScratchSpeedRate | (int id |
| float scratchSpeedRate) |
调整搓碟的变速效果
参数 | 描述 |
id | 音乐 ID。 |
scratchSpeedRate | 搓碟速度,默认值是1.0f,范围是:[-12.0 ~ 12.0] 之间的浮点数, 速度值正/负表示方向正/反,绝对值大小表示速度快慢。 |
注意
前置条件 preloadMusic 成功。
setPreloadObserver
setPreloadObserver
void setPreloadObserver |
设置预加载事件回调
请在预加载背景音乐之前使用该接口设置回调,以便感知背景音乐的预加载进度。
参数 | 描述 |
observer | 具体参考 ITXMusicPreloadObserver 中定义接口。 |
preloadMusic
preloadMusic
void preloadMusic |
预加载背景音乐
每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。
参数 | 描述 |
preloadParam | 预加载音乐参数。 |
注意
1. 预先加载最多同时支持2个不同 ID 的预加载,且预加载时长不超过10分钟,使用完需 stopPlayMusic,否则内存不释放。
2. 若该ID对应的音乐正在播放中,预加载会失败,需先调用 stopPlayMusic。
3. 当 musicParam 和传入 startPlayMusic 的 musicParam 完全相同时,预加载有效。
getMusicTrackCount
getMusicTrackCount
long getMusicTrackCount | (int id) |
获取背景音乐的音轨数量
参数 | 描述 |
id | 音乐 ID。 |
setMusicTrack
setMusicTrack
void setMusicTrack | (int id |
| int trackIndex) |
指定背景音乐的播放音轨
参数 | 描述 |
id | 音乐 ID。 |
index | 默认播放第一个音轨。取值范围[0, 音轨总数)。 |
注意
音轨总数量可通过 getMusicTrackCount 接口获取。
TXVoiceReverbType
TXVoiceReverbType
混响特效
混响特效可以作用于人声之上,通过声学算法对声音进行叠加处理,模拟出各种不同环境下的临场感受,目前支持如下几种混响效果:
0:关闭;1:KTV;2:小房间;3:大会堂;4:低沉;5:洪亮;6:金属声;7:磁性;8:空灵;9:录音棚;10:悠扬 11:录音棚2。
枚举 | 取值 | 描述 |
TXLiveVoiceReverbType_0 | 0 | 关闭特效 |
TXLiveVoiceReverbType_1 | 1 | KTV |
TXLiveVoiceReverbType_2 | 2 | 小房间 |
TXLiveVoiceReverbType_3 | 3 | 大会堂 |
TXLiveVoiceReverbType_4 | 4 | 低沉 |
TXLiveVoiceReverbType_5 | 5 | 洪亮 |
TXLiveVoiceReverbType_6 | 6 | 金属声 |
TXLiveVoiceReverbType_7 | 7 | 磁性 |
TXLiveVoiceReverbType_8 | 8 | 空灵 |
TXLiveVoiceReverbType_9 | 9 | 录音棚 |
TXLiveVoiceReverbType_10 | 10 | 悠扬 |
TXLiveVoiceReverbType_11 | 11 | 录音棚2 |
TXVoiceChangeType
TXVoiceChangeType
变声特效
变声特效可以作用于人声之上,通过声学算法对人声进行二次处理,以获得与原始声音所不同的音色,目前支持如下几种变声特效:
0:关闭;1:熊孩子;2:萝莉;3:大叔;4:重金属;5:感冒;6:外语腔;7:困兽;8:肥宅;9:强电流;10:重机械;11:空灵。
枚举 | 取值 | 描述 |
TXVoiceChangerType_0 | 0 | 关闭 |
TXVoiceChangerType_1 | 1 | 熊孩子 |
TXVoiceChangerType_2 | 2 | 萝莉 |
TXVoiceChangerType_3 | 3 | 大叔 |
TXVoiceChangerType_4 | 4 | 重金属 |
TXVoiceChangerType_5 | 5 | 感冒 |
TXVoiceChangerType_6 | 6 | 外语腔 |
TXVoiceChangerType_7 | 7 | 困兽 |
TXVoiceChangerType_8 | 8 | 肥宅 |
TXVoiceChangerType_9 | 9 | 强电流 |
TXVoiceChangerType_10 | 10 | 重机械 |
TXVoiceChangerType_11 | 11 | 空灵 |
TXAudioMusicParam
TXAudioMusicParam
背景音乐的播放控制信息
1. 如果要多次播放同一首背景音乐,请不要每次播放都分配一个新的 ID,我们推荐使用相同的 ID。
2. 若您希望同时播放多首不同的音乐,请为不同的音乐分配不同的 ID 进行播放。
3. 如果使用同一个 ID 播放不同音乐,SDK 会先停止播放旧的音乐,再播放新的音乐。
枚举类型 | 描述 |
endTimeMS | 【字段含义】音乐结束播放时间点,单位毫秒,0表示播放至文件结尾。 |
id | 【字段含义】音乐 ID。 【特殊说明】SDK 允许播放多路音乐,因此需要使用 ID 进行标记,用于控制音乐的开始、停止、音量等。 |
isShortFile | 【字段含义】播放的是否为短音乐文件。 【推荐取值】true:需要重复播放的短音乐文件;false:正常的音乐文件。默认值:false。 |
loopCount | 【字段含义】音乐循环播放的次数。 【推荐取值】取值范围为0 - 任意正整数,默认值:0。0 表示播放音乐一次;1 表示播放音乐两次;以此类推。 |
path | 【字段含义】音效文件的完整路径或 URL 地址。支持的音频格式包括 MP3、AAC、M4A、WAV。 |
publish | 【字段含义】是否将音乐传到远端。 【推荐取值】true:音乐在本地播放的同时,远端用户也能听到该音乐;false:主播只能在本地听到该音乐,远端观众听不到。默认值:false。 |
startTimeMS | 【字段含义】音乐开始播放时间点,单位:毫秒。 |
- ITXMusicPreloadObserver
- ITXMusicPlayObserver
- ITXAudioEffectManager
- 结构体类型
- 枚举类型
- onLoadProgress
- onLoadError
- onStart
- onPlayProgress
- onComplete
- enableVoiceEarMonitor
- setVoiceEarMonitorVolume
- setVoiceReverbType
- setVoiceChangerType
- setVoiceCaptureVolume
- setVoicePitch
- setMusicObserver
- startPlayMusic
- stopPlayMusic
- pausePlayMusic
- resumePlayMusic
- setAllMusicVolume
- setMusicPublishVolume
- setMusicPlayoutVolume
- setMusicPitch
- setMusicSpeedRate
- getMusicCurrentPosInMS
- getMusicDurationInMS
- seekMusicToPosInTime
- setMusicScratchSpeedRate
- setPreloadObserver
- preloadMusic
- getMusicTrackCount
- setMusicTrack
- TXVoiceReverbType
- TXVoiceChangeType
- TXAudioMusicParam