直播过程控制
本章节介绍互动直播过程中网易云信提供的各种控制功能。包括互动直播控制和通用控制。
互动直播控制包括改变自己在会议中的角色(互动者/观众)、互动直播过程中切换推流地址
通用控制包括是否接收某用户的音频或视频数据、设置扬声器等
改变自己在会议中的角色
API介绍
多人模式下用户角色设定是通过setParameters或者setParameter接口进行设置的,参数名称在AVChatParameters中的KEY_SESSION_MULTI_MODE_USER_ROLE。在普通模式下,允许发送和接收数据。当切换到观众模式时,自己仅接收数据,不再发送数据。
API原型
/**
* 多人模式下用户角色设定。
*
* 普通模式下,允许发送和接收数据。当切换到观众模式时,自己仅接收数据,不再发送数据。
* @see AVChatUserRole#AUDIENCE
* @see AVChatUserRole#NORMAL
*/
public static final Key KEY_SESSION_MULTI_MODE_USER_ROLE = new Key<>(RtcParameters.KEY_SESSION_MULTI_MODE_USER_ROLE, Integer.class);参数说明
参数
说明
value
角色,参考AVChatUserRole,AUDIENCE是观众模式,NORMAL是普通模式。
示例
AVChatManager.getInstance().setParameter(AVChatParameters.KEY_SESSION_MULTI_MODE_USER_ROLE, AVChatUserRole.NORMAL);
设置静音
API介绍
设置静音是设置本地音频,也不发送本地音频数据。
API原型
/**
* 开/关本地音频.
*
* @param muted {@code true} 静音本地语音,{@code false} 取消本地语音静音
*/
public abstract void muteLocalAudio(boolean muted);参数说明
参数
说明
account
用户账号。
muted
true 静音;false 取消静音。
示例
//关闭语音发送.
AVChatManager.getInstance().muteLocalAudio(true);
设置视频
API介绍
设置本地视频流的发送。
API原型
/**
* 开/关本地视频流的发送.
*
* @param muted {@code true} 不发送本地视频流,{@code false} 发送本地视频流
*/
public abstract void muteLocalVideo(boolean muted);参数说明
参数
说明
account
用户账号。
muted
true 不发送;false 发送数据据。
示例
// 关闭摄像头
AVChatManager.getInstance().muteLocalVideo(true);
指定某用户设置是否对其静音
API介绍
设置是否允许播放远端用户语音流数据。
API原型
/**
* 设置是否允许播放远端用户数据.
*
* @param account 用户账号
* @param muted {@code true} 不解码播放远端语音流,{@code false} 解码播放远端语音流
*/
public abstract void muteRemoteAudio(String account, boolean muted);参数说明
参数
说明
account
用户账号。
muted
true 不解码语音流数据;false 解码语音流数据。
示例
// 不解码播放远端语音流
AVChatManager.getInstance().muteRemoteAudio(account, true);
指定某用户设置是否接收其视频
API介绍
设置是否允许播放远端用户视频流数据。
API原型
/**
* 设置是否允许播放远端用户数据.
*
* @param account 用户账号
* @param muted {@code true} 不解码绘制远端视频流,{@code false} 解码绘制远端视频流
*/
public abstract void muteRemoteVideo(String account, boolean muted);参数说明
参数
说明
account
用户账号。
muted
true 不解码视频流数据;false 解码视频流数据。
示例
//不解码绘制远端视频流
AVChatManager.getInstance().muteRemoteVideo(account, true);
设置扬声器
API介绍
设置是否使用扬声器。
API原型
/**
* 是否使用扬声器
*
* @param enable {@code true} 打开扬声器,{@code false} 关闭扬声器
*/
public abstract void setSpeaker(boolean enable);参数说明
参数
说明
enable
是否打开扬声器。
示例
boolean speakerMode = true;
AVChatManager.getInstance().setSpeaker(speakerMode = !speakerMode);
设置音频输出设备
API介绍
设置音频输出设备
API原型
/**
* 设置音频输出设备
* 可选设备列表来自此回调 {@link AVChatStateObserverLite#onAudioDeviceChanged}
*
* @param audioDevice {@link com.netease.nimlib.sdk.avchat.constant.AVChatAudioDevice}
*/
public abstract void selectAudioDevice(int audioDevice);参数说明
参数
说明
int
示例
AVChatManager.getInstance(). selectAudioDevice(AVChatAudioDevice.SPEAKER_PHONE);
获取麦克风状态
API介绍
检查麦克风是否静音。
API原型
/**
* 检查麦克风是否静音
*
* @return 麦克风是否静音
*/
public abstract boolean isMicrophoneMute();示例
boolean isMute = AVChatManager.getInstance().isMicrophoneMute();
设置麦克风静音
API介绍
设置麦克风是否静音。
API原型
/**
* 设置麦克风是否静音
*
* @param mute 麦克风是否静音
*/
public abstract void setMicrophoneMute(boolean mute);参数说明
参数
说明
mute
麦克风是否静音。
示例
boolean mute = true;
AVChatManager.getInstance(). setMicrophoneMute(mute = ! mute);
切换通话模式
API介绍
视频切换为音频需要关闭预览和视频模块,音频切换为视频需要打开预览和视频模块。
其中,设置打开和关闭视频模块enableVideo和disableVideo详见加入互动直播房间节,设置打开和关闭预览startVideoPreview和stopVideoPreview详见开始和停止视频采集节。
API原型
/**
* 是否发送本地视频流数据.
*
* @return {@code true} 本地视频暂停,{@code false} 本地视频未暂停
*/
public abstract boolean isLocalVideoMuted();
/**
* 开/关本地视频流的发送.
*
* @param muted {@code true} 不发送本地视频流,{@code false} 发送本地视频流
*/
public abstract void muteLocalVideo(boolean muted);参数说明
muteLocalVideo参数说明:
| 参数 | 说明 |
| :-------- | :------ |
| muted | 是否发送本地视频流。 |
示例
/**
* 视频切换为音频
*/
AVChatManager.getInstance().stopVideoPreview();
AVChatManager.getInstance().disableVideo();
/**
* 音频切换为视频
*/
//打开视频
AVChatManager.getInstance().enableVideo();
AVChatManager.getInstance().startVideoPreview();
// 是否在发送视频 即摄像头是否开启
if (AVChatManager.getInstance().isLocalVideoMuted()) {
AVChatManager.getInstance().muteLocalVideo(false);
}
互动直播过程中切换推流地址
API介绍
在互动直播的过程中可以实时的更新推流地址。如果加入房间时就没有指定推流地址,那么后续也不能实时更新推流地址。
API原型
/**
*
* 互动直播推流地址。
*
* 推流地址,仅主播设置,非主播用户不能设置此参数。 如果需要开启直播,必须在通话前设置推流地址,通话过程中可以更新推流地址。
public static final Key KEY_SESSION_LIVE_URL = new Key<>(RtcParameters.KEY_SESSION_LIVE_URL, String.class);参数说明
参数
说明
value
推流地址。
示例
protected String pullUrl = "..."; // 推流地址
AVChatManager.getInstance().setParameter(AVChatParameters.KEY_SESSION_LIVE_URL, pushUrl);
本篇文档内容是否对您有帮助?
有帮助
我要吐槽
如果遇到产品相关问题,您可 提交工单 或 在线客服 寻求帮助。
您的改进建议
×
问题类型
内容错误
内容没更新
描述不清
链接有误
步骤不完整
内容缺失(缺少代码/示例)
其他
更多建议
请输入您的建议或问题(至少5个字符,至多500个字符)
联系方式
标记内容
同时提交标记内容
提交
此文档对你是否有帮助
×
有帮助
我要吐槽
×
反馈成功
非常感谢您的反馈,我们会继续努力做得更好。