混音
从音频文件混音
-
混音功能支持将用户自定义的音频数据、音频文件与本地麦克风采集的音频数据进行混合。支持的用户自定义音频文件或网络音源格式有:MP3、AAC、M4A、WAV。
-
加入房间并发布默认资源 (
RCRTCEngine.Publish()
) 成功后,调用RCRTCEngine.StartAudioMixing
方法使用指定的音频文件混音,退出房间前需要调用RCRTCEngine.StopAudioMixing
结束混音。
提示
调用之前应用必须已经授予 <uses-permission android: name="android.permission.READ_EXTERNAL_STORAGE" />
权限。
如果 Android 10 手机上授予了权限后也出现了混音失败,请参考知识库 为什么 Android 10 无法使用 startMix 进行混音?
-
参数说明:
参数 类型 说明 path String 文件的绝对路径,如
Android:file:///android_asset/music.mp3
iOS:file:////var/mobile/Containers/Data/Application/.../music.mp3
mode RCRTCAudioMixerMode 混音模式
Mode.NONE: 不做任何操作
MIX: 将音频文件的音频数据与麦克风采集的数据混音发送至对端
REPLACE: 将麦克风采集的数据替换为音频文件的音频数据发送至对端playBack boolean 在调用该方法后是否播放音频文件 loopCount int loopCount > 0 : 循环混音 loopCount 次;loopCount = -1 : 无限循环;其他取值:混音一次 -
示例代码:
String audioFile = "/sdcard/emulated/0/music.mp3";
Engine.StartAudioMixing(audioFile, RCRTCAudioMixingMode.MIX, true, -1);
// 调节混音音量(修改的是对端听到的声音音量)
Engine.AdjustAudioMixingVolume(80);
// 调节播放音量(修改的是本端听到的声音音量)
Engine.AdjustAudioMixingPlaybackVolume(80);
// 获取混音文件播放总时长(秒)
Engine.GetAudioMixingDuration();
// 获取混音进度,例如 0.2 表示播放了 20%
Engine.GetAudioMixingPosition();
// 调节混音进度,例如 0.2 表示调节至 20% 处开始播放
Engine.SetAudioMixingPosition(double position);
// 暂停混音
Engine.PauseAudioMixing();
// 继续混音
Engine.ResumeAudioMixing();
// 停止混音
Engine.StopAudioMixing();
设置混音状态监听
开始混音、暂停/继续混音、结束混音、混音文件已自动混流完成等状态监听。
Engine.OnAudioMixingStarted = () => {
// 混音开始
}
Engine.OnAudioMixingPaused = () => {
// 混音暂停
}
Engine.OnAudioMixingStopped = () => {
// 混音停止
}
Engine.OnAudioMixingFinished = () => {
// 混音完成
}