腾讯云直播SDKTXAudioEffectManager_音视频解决方案_同尘科技

直播SDK 1年前 (2023-09-05) 浏览 58

Copyright (c) 2021 Tencent. All rights reserved.
Module: 背景音乐、短音效和人声特效的管理类
Function: 用于对背景音乐、短音效和人声特效进行设置的管理类
TXAudioEffectManager

TXAudioEffectManager

函数列表 描述
enableVoiceEarMonitor: 开启耳返
setVoiceEarMonitorVolume: 设置耳返音量
setVoiceReverbType: 设置人声的混响效果
setVoiceChangerType: 设置人声的变声特效
setVoiceVolume: 设置语音音量
setVoicePitch: 设置语音音调
startPlayMusic:onStart:onProgress:onComplete: 开始播放背景音乐
stopPlayMusic: 停止播放背景音乐
pausePlayMusic: 暂停播放背景音乐
resumePlayMusic: 恢复播放背景音乐
setAllMusicVolume: 设置所有背景音乐的本地音量和远端音量的大小
setMusicPublishVolume:volume: 设置某一首背景音乐的远端音量的大小
setMusicPlayoutVolume:volume: 设置某一首背景音乐的本地音量的大小
setMusicPitch:pitch: 调整背景音乐的音调高低
setMusicSpeedRate:speedRate: 调整背景音乐的变速效果
getMusicCurrentPosInMS: 获取背景音乐的播放进度(单位:毫秒)
getMusicDurationInMS: 获取背景音乐的总时长(单位:毫秒)
seekMusicToPosInMS:pts: 设置背景音乐的播放进度(单位:毫秒)
setMusicScratchSpeedRate:speedRate: 调整搓碟的变速效果
preloadMusic:onProgress:onError: 预加载背景音乐
getMusicTrackCount: 获取背景音乐的音轨数量
setMusicTrack:track: 指定背景音乐的播放音轨

结构体类型

函数列表 描述
TXAudioMusicParam 背景音乐的播放控制信息

枚举类型

枚举类型 描述
TXVoiceReverbType 混响特效
TXVoiceChangeType 变声特效

enableVoiceEarMonitor:

enableVoiceEarMonitor:

– (void)enableVoiceEarMonitor: (BOOL)enable

开启耳返

主播开启耳返后,可以在耳机里听到麦克风采集到的自己发出的声音,该特效适用于主播唱歌的应用场景中。
需要您注意的是,由于蓝牙耳机的硬件延迟非常高,所以在主播佩戴蓝牙耳机时无法开启此特效,请尽量在用户界面上提示主播佩戴有线耳机。同时也需要注意,并非所有的手机开启此特效后都能达到优秀的耳返效果,我们已经对部分耳返效果不佳的手机屏蔽了该特效。

参数 描述
enable YES:开启;NO:关闭。

注意仅在主播佩戴耳机时才能开启此特效,同时请您提示主播佩戴有线耳机。

setVoiceEarMonitorVolume:

setVoiceEarMonitorVolume:

– (void)setVoiceEarMonitorVolume: (NSInteger)volume

设置耳返音量

通过该接口您可以设置耳返特效中声音的音量大小。

参数 描述
volume 音量大小,取值范围为 0 – 100,默认值:100。

注意如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。

setVoiceReverbType:

setVoiceReverbType:

– (void)setVoiceReverbType: (TXVoiceReverbType)reverbType

设置人声的混响效果

通过该接口您可以设置人声的混响效果,具体特效请参见枚举定义 TXVoiceReverbType。注意设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。

setVoiceChangerType:

setVoiceChangerType:

– (void)setVoiceChangerType: (TXVoiceChangeType)changerType

设置人声的变声特效

通过该接口您可以设置人声的变声特效,具体特效请参见枚举定义 TXVoiceChangeType。注意设置的效果在退出房间后会自动失效,如果下次进房还需要对应特效,需要调用此接口再次进行设置。

setVoiceVolume:

setVoiceVolume:

– (void)setVoiceVolume: (NSInteger)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。

startPlayMusic:onStart:onProgress:onComplete:

startPlayMusic:onStart:onProgress:onComplete:

– (void)startPlayMusic: (TXAudioMusicParam *)musicParam
onStart: (TXAudioMusicStartBlock _Nullable)startBlock
onProgress: (TXAudioMusicProgressBlock _Nullable)progressBlock
onComplete: (TXAudioMusicCompleteBlock _Nullable)completeBlock

开始播放背景音乐

每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。

参数 描述
completeBlock 播放结束回调。
musicParam 音乐参数。
progressBlock 播放进度回调。
startBlock 播放开始回调。

注意1. 如果要多次播放同一首背景音乐,请不要每次播放都分配一个新的 ID,我们推荐使用相同的 ID。2. 若您希望同时播放多首不同的音乐,请为不同的音乐分配不同的 ID 进行播放。3. 如果使用同一个 ID 播放不同音乐,SDK 会先停止播放旧的音乐,再播放新的音乐。

stopPlayMusic:

stopPlayMusic:

– (void)stopPlayMusic: (int32_t)id

停止播放背景音乐

参数 描述
id 音乐 ID。

pausePlayMusic:

pausePlayMusic:

– (void)pausePlayMusic: (int32_t)id

暂停播放背景音乐

参数 描述
id 音乐 ID。

resumePlayMusic:

resumePlayMusic:

– (void)resumePlayMusic: (int32_t)id

恢复播放背景音乐

参数 描述
id 音乐 ID。

setAllMusicVolume:

setAllMusicVolume:

– (void)setAllMusicVolume: (NSInteger)volume

设置所有背景音乐的本地音量和远端音量的大小

该接口可以设置所有背景音乐的本地音量和远端音量。 本地音量:即主播本地可以听到的背景音乐的音量大小。 远端音量:即观众端可以听到的背景音乐的音量大小。

参数 描述
volume 音量大小,取值范围为0 – 100,默认值:60。

注意如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。

setMusicPublishVolume:volume:

setMusicPublishVolume:volume:

– (void)setMusicPublishVolume: (int32_t)id
volume: (NSInteger)volume

设置某一首背景音乐的远端音量的大小

该接口可以细粒度地控制每一首背景音乐的远端音量,也就是观众端可听到的背景音乐的音量大小。

参数 描述
id 音乐 ID。
volume 音量大小,取值范围为0 – 100;默认值:60。

注意如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。

setMusicPlayoutVolume:volume:

setMusicPlayoutVolume:volume:

– (void)setMusicPlayoutVolume: (int32_t)id
volume: (NSInteger)volume

设置某一首背景音乐的本地音量的大小

该接口可以细粒度地控制每一首背景音乐的本地音量,也就是主播本地可以听到的背景音乐的音量大小。

参数 描述
id 音乐 ID。
volume 音量大小,取值范围为0 – 100,默认值:60。

注意如果将 volume 设置成 100 之后感觉音量还是太小,可以将 volume 最大设置成 150,但超过 100 的 volume 会有爆音的风险,请谨慎操作。

setMusicPitch:pitch:

setMusicPitch:pitch:

– (void)setMusicPitch: (int32_t)id
pitch: (double)pitch

调整背景音乐的音调高低

参数 描述
id 音乐 ID。
pitch 音调,默认值是0.0f,范围是:[-1 ~ 1] 之间的浮点数。

setMusicSpeedRate:speedRate:

setMusicSpeedRate:speedRate:

– (void)setMusicSpeedRate: (int32_t)id
speedRate: (double)speedRate

调整背景音乐的变速效果

参数 描述
id 音乐 ID。
speedRate 速度,默认值是1.0f,范围是:[0.5 ~ 2] 之间的浮点数。

getMusicCurrentPosInMS:

getMusicCurrentPosInMS:

– (NSInteger)getMusicCurrentPosInMS: (int32_t)id

获取背景音乐的播放进度(单位:毫秒)

参数 描述
id 音乐 ID。

返回值说明:

成功返回当前播放时间,单位:毫秒,失败返回 -1。

getMusicDurationInMS:

getMusicDurationInMS:

– (NSInteger)getMusicDurationInMS: (NSString *)path

获取背景音乐的总时长(单位:毫秒)

参数 描述
path 音乐文件路径。

返回值说明:

成功返回时长,失败返回 -1。

seekMusicToPosInMS:pts:

seekMusicToPosInMS:pts:

– (void)seekMusicToPosInMS: (int32_t)id
pts: (NSInteger)pts

设置背景音乐的播放进度(单位:毫秒)

参数 描述
id 音乐 ID。
pts 单位: 毫秒。

注意请尽量避免过度频繁地调用该接口,因为该接口可能会再次读写音乐文件,耗时稍高。因此,当用户拖拽音乐的播放进度条时,请在用户完成拖拽操作后再调用本接口。因为 UI 上的进度条控件往往会以很高的频率反馈用户的拖拽进度,如不做频率限制,会导致较差的用户体验。

setMusicScratchSpeedRate:speedRate:

setMusicScratchSpeedRate:speedRate:

– (void)setMusicScratchSpeedRate: (int32_t)id
speedRate: (double)scratchSpeedRate

调整搓碟的变速效果

参数 描述
id 音乐 ID。
scratchSpeedRate 搓碟速度,默认值是1.0f,范围是:[-12.0 ~ 12.0] 之间的浮点数, 速度值正/负表示方向正/反,绝对值大小表示速度快慢。

注意前置条件 preloadMusic 成功。

preloadMusic:onProgress:onError:

preloadMusic:onProgress:onError:

– (void)preloadMusic: (TXAudioMusicParam *)preloadParam
onProgress: (TXMusicPreloadProgressBlock _Nullable)progressBlock
onError: (TXMusicPreloadErrorBlock _Nullable)errorBlock

预加载背景音乐

每个音乐都需要您指定具体的 ID,您可以通过该 ID 对音乐的开始、停止、音量等进行设置。

参数 描述
preloadParam 预加载音乐参数。

注意1. 预先加载最多同时支持2个不同 ID 的预加载,且预加载时长不超过10分钟,使用完需 stopPlayMusic,否则内存不释放。2. 若该ID对应的音乐正在播放中,预加载会失败,需先调用 stopPlayMusic。3. 当 musicParam 和传入 startPlayMusic 的 musicParam 完全相同时,预加载有效。

getMusicTrackCount:

getMusicTrackCount:

– (NSInteger)getMusicTrackCount: (int32_t)id

获取背景音乐的音轨数量

参数 描述
id 音乐 ID。

setMusicTrack:track:

setMusicTrack:track:

– (void)setMusicTrack: (int32_t)id
track: (NSInteger)track

指定背景音乐的播放音轨

参数 描述
id 音乐 ID。
index 默认播放第一个音轨。取值范围[0, 音轨总数)。

注意音轨总数量可通过 getMusicTrackCount 接口获取。

TXVoiceReverbType

TXVoiceReverbType

混响特效

混响特效可以作用于人声之上,通过声学算法对声音进行叠加处理,模拟出各种不同环境下的临场感受,目前支持如下几种混响效果:0:关闭;1:KTV;2:小房间;3:大会堂;4:低沉;5:洪亮;6:金属声;7:磁性;8:空灵;9:录音棚;10:悠扬 11:录音棚2。

枚举 取值 描述
TXVoiceReverbType_0 0 关闭特效
TXVoiceReverbType_1 1 KTV
TXVoiceReverbType_2 2 小房间
TXVoiceReverbType_3 3 大会堂
TXVoiceReverbType_4 4 低沉
TXVoiceReverbType_5 5 洪亮
TXVoiceReverbType_6 6 金属声
TXVoiceReverbType_7 7 磁性
TXVoiceReverbType_8 8 空灵
TXVoiceReverbType_9 9 录音棚
TXVoiceReverbType_10 10 悠扬
TXVoiceReverbType_11 11 录音棚2

TXVoiceChangeType

TXVoiceChangeType

变声特效

变声特效可以作用于人声之上,通过声学算法对人声进行二次处理,以获得与原始声音所不同的音色,目前支持如下几种变声特效:0:关闭;1:熊孩子;2:萝莉;3:大叔;4:重金属;5:感冒;6:外语腔;7:困兽;8:肥宅;9:强电流;10:重机械;11:空灵。

枚举 取值 描述
TXVoiceChangeType_0 0 关闭
TXVoiceChangeType_1 1 熊孩子
TXVoiceChangeType_2 2 萝莉
TXVoiceChangeType_3 3 大叔
TXVoiceChangeType_4 4 重金属
TXVoiceChangeType_5 5 感冒
TXVoiceChangeType_6 6 外语腔
TXVoiceChangeType_7 7 困兽
TXVoiceChangeType_8 8 肥宅
TXVoiceChangeType_9 9 强电流
TXVoiceChangeType_10 10 重机械
TXVoiceChangeType_11 11 空灵

TXAudioMusicParam

TXAudioMusicParam

背景音乐的播放控制信息

该信息用于在接口 startPlayMusic 中指定背景音乐的相关信息,包括播放 ID、文件路径和循环次数等:1. 如果要多次播放同一首背景音乐,请不要每次播放都分配一个新的 ID,我们推荐使用相同的 ID。2. 若您希望同时播放多首不同的音乐,请为不同的音乐分配不同的 ID 进行播放。3. 如果使用同一个 ID 播放不同音乐,SDK 会先停止播放旧的音乐,再播放新的音乐。

枚举类型 描述
ID 【字段含义】音乐 ID。【特殊说明】SDK 允许播放多路音乐,因此需要使用 ID 进行标记,用于控制音乐的开始、停止、音量等。
endTimeMS 【字段含义】音乐结束播放时间点,单位毫秒,0表示播放至文件结尾。
isShortFile 【字段含义】播放的是否为短音乐文件。【推荐取值】YES:需要重复播放的短音乐文件;NO:正常的音乐文件。默认值:NO。
loopCount 【字段含义】音乐循环播放的次数。【推荐取值】取值范围为0 – 任意正整数,默认值:0。0 表示播放音乐一次;1 表示播放音乐两次;以此类推。
path 【字段含义】音效文件的完整路径或 URL 地址。支持的音频格式包括 MP3、AAC、M4A、WAV。
publish 【字段含义】是否将音乐传到远端。【推荐取值】YES:音乐在本地播放的同时,远端用户也能听到该音乐;NO:主播只能在本地听到该音乐,远端观众听不到。默认值:NO。
startTimeMS 【字段含义】音乐开始播放时间点,单位:毫秒。

对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?