腾讯云直播SDKTXAudioEffectManager_音视频解决方案_同尘科技
Copyright (c) 2021 Tencent. All rights reserved.
Module: 背景音乐、短音效和人声特效的管理类
Function: 用于对背景音乐、短音效和人声特效进行设置的管理类
TXAudioEffectManager
TXMusicPreloadObserver
函数列表 | 描述 |
onLoadProgress | 背景音乐预加载进度 |
onLoadError | 背景音乐预加载出错 |
TXMusicPlayObserver
函数列表 | 描述 |
onStart | 背景音乐开始播放 |
onPlayProgress | 背景音乐的播放进度 |
onComplete | 背景音乐已经播放完毕 |
TXAudioEffectManager
函数列表 | 描述 |
enableVoiceEarMonitor | 开启耳返 |
setVoiceEarMonitorVolume | 设置耳返音量 |
setVoiceReverbType | 设置人声的混响效果 |
setVoiceChangerType | 设置人声的变声特效 |
setVoiceCaptureVolume | 设置语音音量 |
setVoicePitch | 设置语音音调 |
setMusicObserver | 设置背景音乐的事件回调接口 |
startPlayMusic | 开始播放背景音乐 |
stopPlayMusic | 停止播放背景音乐 |
pausePlayMusic | 暂停播放背景音乐 |
resumePlayMusic | 恢复播放背景音乐 |
setAllMusicVolume | 设置所有背景音乐的本地音量和远端音量的大小 |
setMusicPublishVolume | 设置某一首背景音乐的远端音量的大小 |
setMusicPlayoutVolume | 设置某一首背景音乐的本地音量的大小 |
setMusicPitch | 调整背景音乐的音调高低 |
setMusicSpeedRate | 调整背景音乐的变速效果 |
getMusicCurrentPosInMS | 获取背景音乐的播放进度(单位:毫秒) |
getMusicDurationInMS | 获取背景音乐的总时长(单位:毫秒) |
seekMusicToPosInMS | 设置背景音乐的播放进度(单位:毫秒) |
setMusicScratchSpeedRate | 调整搓碟的变速效果 |
setPreloadObserver | 设置预加载事件回调 |
preloadMusic | 预加载背景音乐 |
getMusicTrackCount | 获取背景音乐的音轨数量 |
setMusicTrack | 指定背景音乐的播放音轨 |
结构体类型
函数列表 | 描述 |
AudioMusicParam | 背景音乐的播放控制信息 |
枚举类型
枚举类型 | 描述 |
TXVoiceReverbType | 混响特效 |
TXVoiceChangerType | 变声特效 |
onLoadProgress
onLoadProgress
void onLoadProgress | (int id |
| int progress) |
背景音乐预加载进度
onLoadError
onLoadError
void onLoadError | (int id |
| int errorCode) |
背景音乐预加载出错
参数 | 描述 |
errorCode | -4001:打开文件失败,如音频文件格式不支持,本地音频文件不存在,网络音频文件无法访问等;-4002:解码失败,如音频文件损坏,网络音频文件服务器无法访问等;-4003:预加载数量超上限,请先调用 stopPlayMusic 释放无用的预加载。 |
onStart
onStart
void onStart | (int id |
| int errCode) |
背景音乐开始播放
在背景音乐开始播放成功或者失败时调用。
参数 | 描述 |
errCode | 错误码。0: 开始播放成功;-4001: 打开文件失败,如音频文件格式不支持,本地音频文件不存在,网络音频文件无法访问等。 |
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 | (boolean enable) |
开启耳返
主播开启耳返后,可以在耳机里听到麦克风采集到的自己发出的声音,该特效适用于主播唱歌的应用场景中。
需要您注意的是,由于蓝牙耳机的硬件延迟非常高,所以在主播佩戴蓝牙耳机时无法开启此特效,请尽量在用户界面上提示主播佩戴有线耳机。同时也需要注意,并非所有的手机开启此特效后都能达到优秀的耳返效果,我们已经对部分耳返效果不佳的手机屏蔽了该特效。
参数 | 描述 |
enable | true:开启;false:关闭。 |
注意仅在主播佩戴耳机时才能开启此特效,同时请您提示主播佩戴有线耳机。
setVoiceEarMonitorVolume
setVoiceEarMonitorVolume
void setVoiceEarMonitorVolume | (int volume) |
设置耳返音量
通过该接口您可以设置耳返特效中声音的音量大小。
参数 | 描述 |
volume | 音量大小,取值范围为 0 – 100,默认值:100。 |
注意如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。
setVoiceReverbType
setVoiceReverbType
void setVoiceReverbType | (TXVoiceReverbType type) |
设置人声的混响效果
通过该接口您可以设置人声的混响效果,具体特效请参见枚举定义 TXVoiceReverbType。注意设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。
setVoiceChangerType
setVoiceChangerType
void setVoiceChangerType | (TXVoiceChangerType type) |
设置人声的变声特效
通过该接口您可以设置人声的变声特效,具体特效请参见枚举定义 TXVoiceChangeType。注意设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。
setVoiceCaptureVolume
setVoiceCaptureVolume
void setVoiceCaptureVolume | (int volume) |
设置语音音量
该接口可以设置语音音量的大小,一般配合音乐音量的设置接口 setAllMusicVolume 协同使用,用于调谐语音和音乐在混音前各自的音量占比。
参数 | 描述 |
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 id |
| TXMusicPlayObserver observer) |
设置背景音乐的事件回调接口
请在播放背景音乐之前使用该接口设置播放事件回调,以便感知背景音乐的播放进度。
参数 | 描述 |
musicId | 音乐 ID。 |
observer | 具体参考 ITXMusicPlayObserver 中定义接口。 |
注意1. 如果要该ID不需要使用,observer 可设置为 NULL 彻底释放。
startPlayMusic
startPlayMusic
boolean startPlayMusic | (final AudioMusicParam musicParam) |
开始播放背景音乐
每个音乐都需要您指定具体的 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 | (String path) |
获取背景音乐的总时长(单位:毫秒)
参数 | 描述 |
path | 音乐文件路径。 |
返回值说明:
成功返回时长,失败返回 -1。
seekMusicToPosInMS
seekMusicToPosInMS
void seekMusicToPosInMS | (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 | (TXMusicPreloadObserver observer) |
设置预加载事件回调
请在预加载背景音乐之前使用该接口设置回调,以便感知背景音乐的预加载进度。
参数 | 描述 |
observer | 具体参考 ITXMusicPreloadObserver 中定义接口。 |
preloadMusic
preloadMusic
boolean preloadMusic | (final AudioMusicParam preloadParam) |
预加载背景音乐
每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。
参数 | 描述 |
preloadParam | 预加载音乐参数。 |
注意1. 预先加载最多同时支持2个不同 ID 的预加载,且预加载时长不超过10分钟,使用完需 stopPlayMusic,否则内存不释放。2. 若该ID对应的音乐正在播放中,预加载会失败,需先调用 stopPlayMusic。3. 当 musicParam 和传入 startPlayMusic 的 musicParam 完全相同时,预加载有效。
getMusicTrackCount
getMusicTrackCount
int 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:空灵。
枚举 | 取值 | 描述 |
TXLiveVoiceChangerType_0 | 0 | 关闭 |
TXLiveVoiceChangerType_1 | 1 | 熊孩子 |
TXLiveVoiceChangerType_2 | 2 | 萝莉 |
TXLiveVoiceChangerType_3 | 3 | 大叔 |
TXLiveVoiceChangerType_4 | 4 | 重金属 |
TXLiveVoiceChangerType_5 | 5 | 感冒 |
TXLiveVoiceChangerType_6 | 6 | 外语腔 |
TXLiveVoiceChangerType_7 | 7 | 困兽 |
TXLiveVoiceChangerType_8 | 8 | 肥宅 |
TXLiveVoiceChangerType_9 | 9 | 强电流 |
TXLiveVoiceChangerType_10 | 10 | 重机械 |
TXLiveVoiceChangerType_11 | 11 | 空灵 |
TXAudioMusicParam
TXAudioMusicParam
背景音乐的播放控制信息
该信息用于在接口 startPlayMusic 中指定背景音乐的相关信息,包括播放 ID、文件路径和循环次数等: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 | 【字段含义】音乐开始播放时间点,单位:毫秒。 |
对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?