跳到主要内容

混音

混音功能支持将指定的音频文件与本地麦克风采集的音频数据进行混合,支持的用户自定义音频文件格式为:MP3、AAC、M4A、WAV。

Android 平台在调用之前应用必须已经授予 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 权限。 iOS 平台无特殊需求。

提示

如果 Android 10 手机上授予了权限后也出现了混音失败,请参考知识库 为什么 Android 10 无法使用 startAudioMixing 进行混音?

从资源目录下的音频文件进行混音

方法

JavaScript
engine.startAudioMixingFromAssets();

参数说明

参数类型必填说明
pathString文件的平台绝对路径,如 ../../static/audio/effect_0.mp3这种路径,需要通过 uni 提供的plus.io.convertLocalFileSystemURL(path) 方法,将本地URL路径转换成平台绝对路径后才可以使用,具体可参考convertLocalFileSystemURL
modeRCRTCAudioMixingMode混音模式:

RCRTCAudioMixingMode.Mix:将音频文件的音频数据与麦克风采集的数据混音发送至对端

RCRTCAudioMixingMode.Replace:将麦克风采集的数据替换为音频文件的音频数据发送至对端

RCRTCAudioMixingMode.None:不做任何操作
playBackBoolean在调用该方法后是否播放音频文件
loopCountNumberloopCount > 0 : 循环混音 loopCount 次;loopCount = -1 : 无限循环;其他取值:混音一次

示例代码

JavaScript
engine.startAudioMixingFromAssets(path, RCRTCAudioMixingMode.Mix, true, -1);
console.log('从资源目录开始混音');

从本地目录下的音频文件进行混音

方法

JavaScript
engine.startAudioMixing();

参数说明

参数类型必填说明
pathString文件的平台绝对路径
modeRCRTCAudioMixingMode混音模式。

RCRTCAudioMixingMode.Mix: 将音频文件的音频数据与麦克风采集的数据混音发送至对端。

RCRTCAudioMixingMode.Replace: 将麦克风采集的数据替换为音频文件的音频数据发送至对端。

RCRTCAudioMixingMode.None: 不做任何操作
playBackBoolean在调用该方法后是否播放音频文件
loopCountNumberloopCount > 0 : 循环混音 loopCount 次;loopCount = -1 : 无限循环;其他取值:混音一次

示例代码

JavaScript
engine.startAudioMixing(path, RCRTCAudioMixingMode.Mix, true, -1);
console.log('从本地目录开始混音');

调节混音音量

方法

JavaScript
engine.adjustAudioMixingVolume();

参数说明

参数类型必填说明
volumeNumber混音音量,即对端听到的声音音量,取值范围0~100

示例代码

JavaScript
engine.adjustAudioMixingVolume(80);
console.log('混音音量调节成功');

调节播放音量

方法

JavaScript
engine.adjustAudioMixingPlaybackVolume();

参数说明

参数类型必填说明
volumeNumber播放音量,即本端听到的声音音量,取值范围0~100

示例代码

JavaScript
engine.adjustAudioMixingPlaybackVolume(80);
console.log('播放音量调节成功');

获取混音文件时长

方法

JavaScript
engine.getAudioMixingDuration();

返回值

参数类型说明
durationNumber当前指定的混音文件的总时长,单位毫秒。返回值小于 0 表示接口调用失败

示例代码

JavaScript
let duration = engine.getAudioMixingDuration();
console.log('混音文件时长:', duration, '毫秒');

获取混音进度

方法

JavaScript
engine.getAudioMixingPosition();

返回值

参数类型说明
positionNumber当前的混音进度,取值范围0~1.0。返回值小于 0 表示接口调用失败

示例代码

JavaScript
let position = engine.getAudioMixingPosition();
console.log('混音进度:', position);

设置混音进度

方法

JavaScript
engine.setAudioMixingPosition();

参数说明

参数类型必填说明
positionNumber混音进度,取值范围 0~1.0

示例代码

JavaScript
/// 设置从当前文件的 20% 进度处开始混音
engine.setAudioMixingPosition(0.2);
console.log('混音进度设置成功');

暂停混音

方法

JavaScript
engine.pauseAudioMixing();

示例代码

JavaScript
engine.pauseAudioMixing();
console.log('混音已暂停');

继续混音

方法

JavaScript
engine.resumeAudioMixing();

示例代码

JavaScript
engine.resumeAudioMixing();
console.log('混音已继续');

停止混音

方法

JavaScript
engine.stopAudioMixing();

示例代码

JavaScript
engine.stopAudioMixing();
console.log('混音已停止');

设置混音状态监听

开始混音、暂停混音、停止混音和混音文件已自动混流完成的状态监听。

设置开始混音监听

方法

JavaScript
engine.setOnAudioMixingStartedListener();

示例代码

JavaScript
/// 设置开始混音监听
engine.setOnAudioMixingStartedListener(() => {
// 开始混音
console.log('混音已开始');
});

设置暂停混音监听

方法

JavaScript
engine.setOnAudioMixingPausedListener();

示例代码

JavaScript
/// 设置暂停混音监听
engine.setOnAudioMixingPausedListener(() => {
// 暂停混音
console.log('混音已暂停');
});

设置停止混音监听

方法

JavaScript
engine.setOnAudioMixingStoppedListener();

示例代码

JavaScript
/// 设置停止混音监听
engine.setOnAudioMixingStoppedListener(() => {
// 停止混音
console.log('混音已停止');
});

设置混音文件已自动混流完成监听

方法

JavaScript
engine.setOnAudioMixingFinishedListener();

示例代码

JavaScript
/// 设置混音文件已自动混流完成监听
engine.setOnAudioMixingFinishedListener(() => {
// 混音文件已自动混流完成
console.log('混音文件已自动混流完成');
});