混音
本章节介绍混音相关的功能,通过阅读本章节你可以快速了解混音功能的调用方法和流程。混音是指在音视频通话和互动直播过程中,将本地的音频文件与本端采集的声音数据混音后发送出去,同时在本端播放出来的功能。
混音功能可以处理系统原生支持语音播放的音频文件类型,如 aac、mp3、mp4 和 wav 等。
该功能支持设置文件播放次数、发送音量和播放音量,支持通话中开始、暂停、恢复、更新及停止文件混音。
开始文件混音任务
API介绍
在通话过程中,可以指定本地音频文件来和麦克风采集的音频流进行混音或者替换。
开启本地语音伴音,可以通过参数指定是否循环,替换本地语音,以及初始音量[0.0f - 1.0f]。
API原型
/**
* 指定本地音频文件来和麦克风采集的音频流进行混音和替换
*
* @param filePath 本地文件路径
* @param loopback 是否循环播放
* @param replace 是否替换麦克风采集的音频数据
* @param cycle 循环的次数
* @param volume 音量[0.0f - 1.0f]
* @return {@code true} 方法调用成功,{@code false} 方法调用失败
*/
public abstract boolean startAudioMixing(String filePath,
boolean loopback,
boolean replace,
int cycle,
float volume);参数说明
参数
说明
filePath
本地文件路径。
loopback
是否循环播放。
replace
是否替换麦克风采集的音频数据。
cycle
循环的次数。
volume
音量[0.0f - 1.0f]。
示例
AVChatManager.getInstance().startAudioMixing(filePath, loopback, replace, cycle, volume);
暂停文件混音任务
API介绍
开始混音后可以暂停本地语音伴音。
API原型
/**
* 暂停伴音
*
* @return {@code true} 方法调用成功,{@code false} 方法调用失败
*/
public abstract boolean pauseAudioMixing();示例
AVChatManager.getInstance().pauseAudioMixing();
恢复文件混音任务
API介绍
恢复本地语音伴音,伴音文件将从暂停时位置开始播放。
API原型
/**
* 恢复伴音
*
* @return {@code true} 方法调用成功,{@code false} 方法调用失败
*/
public abstract boolean resumeAudioMixing();示例
AVChatManager.getInstance().resumeAudioMixing();
停止文件混音任务
API介绍
停止本地语音伴音。
API原型
/**
* 停止伴音
*
* @return {@code true} 方法调用成功,{@code false} 方法调用失败
*/
public abstract boolean stopAudioMixing();示例
AVChatManager.getInstance().stopAudioMixing();
文件混音音量设置
API介绍
设置语音伴音的本地播放音量以及发送音量
API原型
/**
* 设置伴音本地播放音量
* @param volume [0.0f - 1.0f]
* @return {@code true} 方法调用成功,{@code false} 方法调用失败
*/
public abstract boolean setAudioMixingPlaybackVolume(float volume);/**
* 设置伴音发送音量
* @param volume [0.0f - 1.0f]
* @return {@code true} 方法调用成功,{@code false} 方法调用失败
*/
public abstract boolean setAudioMixingSendVolume(float volume);示例
AVChatManager.getInstance().setAudioMixingPlaybackVolume(1.0);
AVChatManager.getInstance().setAudioMixingSendVolume(1.0);
任务完成通知
API介绍
伴音的状态通知 onAudioMixingEvent,事件类型为AUDIO_MIXING_ERROR以及 AUDIO_MIXING_FINISHED.
API原型
/**
* 伴音事件
*
* @see com.netease.nimlib.sdk.avchat.constant.AVChatAudioMixingEvent#MIXING_ERROR
* @see com.netease.nimlib.sdk.avchat.constant.AVChatAudioMixingEvent#MIXING_FINISHED
* @see com.netease.nimlib.sdk.avchat.constant.AVChatAudioMixingEvent#MIXING_STARTED
* @see AVChatManager#startAudioMixing(String, boolean, boolean, int, float)
* @see AVChatManager#stopAudioMixing()
*/
void onAudioMixingEvent(int event);参数说明
示例
public void onAudioMixingEvent(int i) {
LogUtil.d(TAG, "onAudioMixingEvent,i -> "+i);
switch (i) {
case AVChatAudioMixingEvent.MIXING_FINISHED:
break;
case AVChatAudioMixingEvent.MIXING_ERROR:
break;
}
}
本篇文档内容是否对您有帮助?
有帮助
我要吐槽
如果遇到产品相关问题,您可 提交工单 或 在线客服 寻求帮助。
您的改进建议
×
问题类型
内容错误
内容没更新
描述不清
链接有误
步骤不完整
内容缺失(缺少代码/示例)
其他
更多建议
请输入您的建议或问题(至少5个字符,至多500个字符)
联系方式
标记内容
同时提交标记内容
提交
此文档对你是否有帮助
×
有帮助
我要吐槽
×
反馈成功
非常感谢您的反馈,我们会继续努力做得更好。