音乐文件播放
adjustAudioMixingPlayoutVolume
调节音乐文件在本地播放的音量。
- (int)adjustAudioMixingPlayoutVolume:(NSInteger)volume;
注意:
你需要在调用 startAudioMixing [2/2]
并收到 audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。
参数
参数名 | 描述 |
---|---|
volume | 音乐文件音量。取值范围为 [0,100],100 (默认值)为原始音量。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
adjustAudioMixingPublishVolume
调节音乐文件远端播放音量。
- (int)adjustAudioMixingPublishVolume:(NSInteger)volume;
该方法调节混音音乐文件在远端的播放音量大小。
注意:
你需要在调用 startAudioMixing [2/2]
并收到 audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。
参数
参数名 | 描述 |
---|---|
volume | 音乐文件音量。取值范围为 [0,100],100 (默认值)为原始音量。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
adjustAudioMixingVolume
调节音乐文件的播放音量。
- (int)adjustAudioMixingVolume:(NSInteger)volume;
该方法调节混音音乐文件在本端和远端的播放音量大小。
注意:
-
该方法需要在
startAudioMixing [2/2]
后调用。 -
调用该方法不影响调用
playEffect [3/3]
播放音效文件的音量。
参数
参数名 | 描述 |
---|---|
volume | 音乐文件音量范围为 0~100。100 (默认值)为原始文件音量。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
adjustPlaybackSignalVolume
调节本地播放的所有远端用户信号音量。
- (int)adjustPlaybackSignalVolume:(NSInteger)volume;
注意:
-
该方法调节的是本地播放的所有远端用户混音后的音量。
-
该方法在加入频道前后都能调用。
参数
参数名 | 描述 |
---|---|
volume | 音量,取值范围为 [0,400]。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
getAudioMixingCurrentPosition
获取音乐文件的播放进度。
- (int)getAudioMixingCurrentPosition;
该方法获取当前音乐文件播放进度,单位为毫秒。
注意:
-
你需要在调用
startAudioMixing [2/2]
并收到audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。 -
如需多次调用
getAudioMixingCurrentPosition
,请确保调用间隔大于 500 ms。
返回值
-
≥ 0: 方法调用成功,返回当前音乐文件播放进度(ms)。0 表示当前音乐文件未开始播放。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
getAudioMixingDuration
获取音乐文件总时长。
- (int)getAudioMixingDuration;
该方法获取音乐文件总时长,单位为毫秒。
注意:
你需要在调用 startAudioMixing [2/2]
并收到 audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。
返回值
-
≥ 0: 方法调用成功返回音乐文件时长。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
getAudioMixingPlayoutVolume
获取音乐文件的本地播放音量。
- (int)getAudioMixingPlayoutVolume;
该方法获取混音的音乐文件本地播放音量,方便排查音量相关问题。
注意:
你需要在调用 startAudioMixing [2/2]
并收到audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。
返回值
-
≥ 0: 方法调用成功则返回音量值,范围为 [0,100]。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
getAudioMixingPublishVolume
获取音乐文件的远端播放音量。
- (int)getAudioMixingPublishVolume;
该接口可以方便开发者排查音量相关问题。
注意: 你需要在调用 startAudioMixing [2/2]
并收到 audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。
返回值
-
≥ 0: 方法调用成功则返回音量值,范围为 [0,100]。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
getAudioTrackCount
获取当前音乐文件的音轨索引。
- (int)getAudioTrackCount;
注:
- 你需要在调用
startAudioMixing [2/2]
并收到audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。
返回值
-
方法调用成功时,返回当前音乐文件的音轨索引。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
pauseAudioMixing
resumeAudioMixing
selectAudioTrack
指定当前音乐文件的播放音轨。
- (int)selectAudioTrack:(NSInteger)index;
获取音乐文件的音轨数量后,你可以调用该方法指定任一音轨进行播放。例如,如果一个多音轨文件的不同音轨存放了不同语言的歌曲,则你可以调用该方法设置音乐文件的播放语言。
注:
-
该方法支持的音频文件格式见 https://docs.agora.io/cn/faq/audio_format。
-
你需要在调用
startAudioMixing [2/2]
并收到audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。
参数
参数名 | 描述 |
---|---|
index | 指定的播放音轨。取值范围为 [0, |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setAudioMixingDualMonoMode
设置当前音频文件的声道模式。
- (int)setAudioMixingDualMonoMode:(AgoraAudioMixingDualMonoMode)mode;
在双声道音频文件中,左声道和右声道可以存储不同的音频数据。根据实际需要,你可以设置声道模式为原始模式、左声道模式、右声道模式或混合模式。例如,在 KTV 场景中,音频文件的左声道存储了伴奏,右声道存储了原唱的歌声。如果你只需听伴奏,调用该方法设置音频文件的声道模式为左声道模式;如果你需要同时听伴奏和原唱,调用该方法设置声道模式为混合模式。
注意:
-
你需要在调用
startAudioMixing [2/2]
并收到audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。 -
该方法仅适用于双声道的音频文件。
参数
参数名 | 描述 |
---|---|
mode | 声道模式。详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setAudioMixingPitch
调整本地播放的音乐文件的音调。
- (int)setAudioMixingPitch:(NSInteger)pitch;
本地人声和播放的音乐文件混音时,调用该方法可以仅调节音乐文件的音调。
注意: 你需要在调用 startAudioMixing [2/2]
并收到 audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调后调用该方法。
参数
参数名 | 描述 |
---|---|
pitch | 按半音音阶调整本地播放的音乐文件的音调,默认值为 0,即不调整音调。取值范围为 [-12,12],每相邻两个值的音高距离相差半音。取值的绝对值越大,音调升高或降低得越多。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
setAudioMixingPosition
startAudioMixing [1/2]
开始播放音乐文件。
- (int)startAudioMixing:(NSString * _Nonnull)filePath
loopback:(BOOL)loopback
cycle:(NSInteger)cycle NS_SWIFT_NAME(startAudioMixing(_:loopback:cycle:));
该方法支持将本地或在线音乐文件和麦克风采集的音频进行混音或替换。成功播放音乐文件后,本地会触发 audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying
) 回调。播放结束后,本地会触发 audioMixingStateChanged
(AgoraAudioMixingStateTypeStopped
) 回调。
注意:
-
该方法在加入频道前后均可调用。如需多次调用
startAudioMixing [1/2]
,请确保调用间隔大于 500 ms。 -
如果本地音乐文件不存在、文件格式不支持或无法访问在线音乐文件 URL,则 SDK 会报告警告码 701。
参数
参数名 | 描述 |
---|---|
filePath | 播放文件的绝对路径或 URL 地址,需精确到文件名及后缀。例如 |
loopback | 是否只在本地播放音乐文件:
|
cycle | 音乐文件的播放次数。
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
startAudioMixing [2/2]
开始播放音乐文件。
- (int)startAudioMixing:(NSString* _Nonnull)filePath loopback:(BOOL)loopback cycle:(NSInteger)cycle startPos:(NSInteger)startPos;
该方法支持将本地或在线音乐文件和麦克风采集的音频进行混音或替换。成功播放音乐文件后,本地会触发 audioMixingStateChanged
(AgoraAudioMixingStateTypePlaying)
回调。播放结束后,本地会触发
回调。audioMixingStateChanged
(AgoraAudioMixingStateTypeStopped
)
注意:
-
该方法在加入频道前后均可调用。如需多次调用
startAudioMixing [2/2]
,请确保调用间隔大于 500 ms。 -
如果本地音乐文件不存在、文件格式不支持或无法访问在线音乐文件 URL,则 SDK 会报告警告码 701。
-
该方法支持的音频文件格式见 RTC SDK 支持播放哪些格式的音频文件。
参数
参数名 | 描述 |
---|---|
filePath | 文件路径:
|
loopback | 是否只在本地播放音乐文件:
|
cycle | 音乐文件的播放次数。
|
startPos | 音乐文件的播放位置,单位为毫秒。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败
-
-1: 一般性的错误(未明确归类)。
-
-2: 设置了无效的参数。
-
-3:SDK 尚未准备好:
-
请检查是否已开启音频模块。
-
请检查程序集完整性。
-
AgoraRtcEngineKit
初始化失败。请重新初始化AgoraRtcEngineKit
。
-
-
stopAudioMixing
rtcEngineLocalAudioMixingDidFinish
本地音乐文件播放已结束回调。
- (void)rtcEngineLocalAudioMixingDidFinish:(AgoraRtcEngineKit * _Nonnull)engine;
当调用 startAudioMixing [2/2]
播放本地音乐文件结束后,会触发该回调。如果调用 startAudioMixing [2/2]
失败,会返回错误码 WARN_AUDIO_MIXING_OPEN_ERROR
。
audioMixingPositionChanged
音乐文件播放进度回调。
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine audioMixingPositionChanged:(NSInteger)position NS_SWIFT_NAME(rtcEngine(_:audioMixingPositionChanged:));
v4.2.0
当你调用 startAudioMixing [2/2]
方法播放音乐文件后,SDK 会每隔一秒触发一次该回调,报告音乐文件当前的播放进度。
参数
参数名 | 描述 |
---|---|
position | 音乐文件当前的播放进度,单位为 ms。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
audioMixingStateChanged
音乐文件的播放状态已改变回调。
- (void)rtcEngine:(AgoraRtcEngineKit *_Nonnull)engine audioMixingStateChanged:(AgoraAudioMixingStateType)state
reasonCode:(AgoraAudioMixingReasonCode)reasonCode;
该回调在音乐文件播放状态发生改变时触发,并报告当前的播放状态和错误码。
参数
参数名 | 描述 |
---|---|
state | 音乐文件播放状态。详见 |
reasonCode | 错误码。详见 |