音乐文件播放
AdjustAudioMixingPlayoutVolume
AdjustAudioMixingPublishVolume
调节音乐文件远端播放音量。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int AdjustAudioMixingPublishVolume(int volume);
详情
该方法调节混音音乐文件在远端的播放音量大小。
你需要在调用 StartAudioMixing 并收到 FOnAudioMixingStateChanged(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。
参数
- volume
- 音乐文件音量。取值范围为 [0,100],100 (默认值)为原始音量。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
AdjustAudioMixingVolume
调节音乐文件的播放音量。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int AdjustAudioMixingVolume(int volume);
详情
该方法调节混音音乐文件在本端和远端的播放音量大小。
- 该方法需要在 StartAudioMixing 后调用。
- 调用该方法不影响调用 PlayEffect 播放音效文件的音量。
参数
- volume
- 音乐文件音量范围为 0~100。100 (默认值)为原始文件音量。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
AdjustPlaybackSignalVolume
调节本地播放的所有远端用户信号音量。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int AdjustPlaybackSignalVolume(int volume);
详情
- 该方法调节的是本地播放的所有远端用户混音后的音量。
- 该方法在加入频道前后都能调用。
参数
- volume
- 音量,取值范围为 [0,400]。
- 0: 静音。信息如果你只需将音频信号静音,声网建议你使用 MuteRecordingSignal。
- 100: (默认)原始音量。
- 400: 原始音量的 4 倍,自带溢出保护。
- 0: 静音。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
GetAudioMixingCurrentPosition
获取音乐文件的播放进度。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int GetAudioMixingCurrentPosition();
详情
该方法获取当前音乐文件播放进度,单位为毫秒。
- 你需要在调用 StartAudioMixing 并收到 FOnAudioMixingStateChanged
(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。 - 如需多次调用 GetAudioMixingCurrentPosition,请确保调用间隔大于 500 ms。
返回值
- ≥ 0: 方法调用成功,返回当前音乐文件播放进度(ms)。0 表示当前音乐文件未开始播放。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
GetAudioMixingDuration
获取音乐文件总时长。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int GetAudioMixingDuration();
详情
该方法获取音乐文件总时长,单位为毫秒。
你需要在调用 StartAudioMixing 并收到 FOnAudioMixingStateChanged(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。
返回值
- ≥ 0: 方法调用成功返回音乐文件时长。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
GetAudioMixingPlayoutVolume
获取音乐文件的本地播放音量。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int GetAudioMixingPlayoutVolume();
详情
该方法获取混音的音乐文件本地播放音量,方便排查音量相关问题。
你需要在调用 StartAudioMixing 并收到FOnAudioMixingStateChanged(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。
返回值
- ≥ 0: 方法调用成功则返回音量值,范围为 [0,100]。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
GetAudioMixingPublishVolume
GetAudioTrackCount
获取当前音乐文件的音轨索引。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int GetAudioTrackCount();
详情
- 你需要在调用 StartAudioMixing 并收到FOnAudioMixingStateChanged
(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。
返回值
- 方法调用成功时,返回当前音乐文件的音轨索引。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
PauseAudioMixing
ResumeAudioMixing
SelectAudioTrack
指定当前音乐文件的播放音轨。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SelectAudioTrack(int index);
详情
获取音乐文件的音轨数量后,你可以调用该方法指定任一音轨进行播放。例如,如果一个多音轨文件的不同音轨存放了不同语言的歌曲,则你可以调用该方法设置音乐文件的播放语言。
- 该方法支持的音频文件格式见 https://doc.shengwang.cn/faq/general-product-inquiry/audio-format。
- 你需要在调用 StartAudioMixing 并收到 FOnAudioMixingStateChanged
(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。
参数
- index
- 指定的播放音轨。取值范围为 [0, GetAudioTrackCount()]。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetAudioMixingDualMonoMode
设置当前音频文件的声道模式。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetAudioMixingDualMonoMode(EAUDIO_MIXING_DUAL_MONO_MODE mode);
详情
在双声道音频文件中,左声道和右声道可以存储不同的音频数据。根据实际需要,你可以设置声道模式为原始模式、左声道模式、右声道模式或混合模式。例如,在 KTV 场景中,音频文件的左声道存储了伴奏,右声道存储了原唱的歌声。如果你只需听伴奏,调用该方法设置音频文件的声道模式为左声道模式;如果你需要同时听伴奏和原唱,调用该方法设置声道模式为混合模式。
- 你需要在调用 StartAudioMixing 并收到 FOnAudioMixingStateChanged
(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。 - 该方法仅适用于双声道的音频文件。
参数
- mode
- 声道模式。详见 EAUDIO_MIXING_DUAL_MONO_MODE。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetAudioMixingPitch
调整本地播放的音乐文件的音调。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetAudioMixingPitch(int pitch);
详情
本地人声和播放的音乐文件混音时,调用该方法可以仅调节音乐文件的音调。
(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。参数
- pitch
- 按半音音阶调整本地播放的音乐文件的音调,默认值为 0,即不调整音调。取值范围为 [-12,12],每相邻两个值的音高距离相差半音。取值的绝对值越大,音调升高或降低得越多。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
SetAudioMixingPosition
设置音乐文件的播放位置。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int SetAudioMixingPosition(int pos);
详情
该方法可以设置音频文件的播放位置,这样你可以根据实际情况播放文件,而非从头到尾播放整个文件。
(AUDIO_MIXING_STATE_PLAYING)
回调后调用该方法。参数
- pos
- 整数。进度条位置,单位为毫秒。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
StartAudioMixing
开始播放音乐文件。
UFUNCTION(BlueprintCallable, Category = "Agora|RtcEngineProxy")
int StartAudioMixing(FString filePath, bool loopback, int cycle, int startPos = 0);
详情
该方法支持将本地或在线音乐文件和麦克风采集的音频进行混音或替换。成功播放音乐文件后,本地会触发 FOnAudioMixingStateChanged(AUDIO_MIXING_STATE_PLAYING)
回调。播放结束后,本地会触发 FOnAudioMixingStateChanged(AUDIO_MIXING_STATE_STOPPED)
回调。
- 该方法在加入频道前后均可调用。如需多次调用 StartAudioMixing,请确保调用间隔大于 500 ms。
- 如果本地音乐文件不存在、文件格式不支持或无法访问在线音乐文件 URL,则 SDK 会报告警告码 701。
- 该方法支持的音频文件格式见 RTC SDK 支持播放哪些格式的音频文件。
- 在 Android 平台上调用该方法时,请注意如下事项:
- 请确保使用 Android 4.2 或以上设备,且 API Level 不低于 16。
- 如果播放的是在线音乐文件,建议不要使用重定向地址。重定向地址在某些机型上可能无法打开。
- 如果在模拟器上调用该方法,则请确保音乐文件在
/sdcard/
目录下,且格式为 MP3。
参数
- filePath
- 文件路径:
- Android: 文件路径,需精确到文件名及后缀。支持在线文件的 URL 地址,本地文件的 URI 地址、绝对路径或以
/assets/
开头的路径。通过绝对路径访问本地文件可能会遇到权限问题,建议使用 URI 地址访问本地文件。例如content://com.android.providers.media.documents/document/audio%3A14441
。 - Windows: 音频文件的绝对路径或 URL 地址,需精确到文件名及后缀。例如
C:\music\audio.mp4
。
- Android: 文件路径,需精确到文件名及后缀。支持在线文件的 URL 地址,本地文件的 URI 地址、绝对路径或以
- loopback
- 是否只在本地播放音乐文件:
true
: 只在本地播放音乐文件,只有本地用户能听到音乐。false
: 将本地播放的音乐文件发布至远端,本地用户和远端用户都能听到音乐。
- cycle
- 音乐文件的播放次数。
- ≥ 0: 播放次数。例如,0 表示不播放;1 表示播放 1 次。
- -1: 无限循环播放。
- startPos
- 音乐文件的播放位置,单位为毫秒。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败
- -1: 一般性的错误(未明确归类)。
- -2: 设置了无效的参数。
- -3:SDK 尚未准备好:
- 请检查是否已开启音频模块。
- 请检查程序集完整性。
- IRtcEngine 初始化失败。请重新初始化 IRtcEngine。
StopAudioMixing
FOnAudioMixingFinished
本地音乐文件播放已结束回调。
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnAudioMixingFinished);
详情
当调用 StartAudioMixing 播放本地音乐文件结束后,会触发该回调。如果调用 StartAudioMixing 失败,会返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR。
FOnAudioMixingPositionChanged
音乐文件播放进度回调。
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAudioMixingPositionChanged, int64, position);
详情
当你调用 StartAudioMixing 方法播放音乐文件后,SDK 会每隔一秒触发一次该回调,报告音乐文件当前的播放进度。
参数
- position
- 音乐文件当前的播放进度,单位为 ms。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
FOnAudioMixingStateChanged
音乐文件的播放状态已改变回调。
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnAudioMixingStateChanged, FENUMWRAP_AUDIO_MIXING_STATE_TYPE, state, FENUMWRAP_AUDIO_MIXING_REASON_TYPE, reason);
详情
该回调在音乐文件播放状态发生改变时触发,并报告当前的播放状态和错误码。
参数
- state
- 音乐文件播放状态。详见 EENUMCUSTOM_AUDIO_MIXING_STATE_TYPE。
- reason