4、接收成员 audio流
玩家进入房间后,一个主要的操作就是发布 audio 给其他玩家接收,并接收其他成员的audio进行播放。这里分步骤介绍如何在客户端操作音频流。
4.1 发布本地 audio
在SDK接口中我们可以直接调用函数 EnableMic 即可,不需要额外操作。
4.2 接收 audio
在收到房间内其他成员音频流发布时会触发通知事件OnParticipantAudioChanged
void OnParticipantAudioChanged(RoomParticipantInfo info, RemoteAudioTrack track, bool isPublished)
参数名 | 数据类型 | 属性说明 |
---|---|---|
info | RoomParticipantInfo | 成员Id、以及所在的房间Id |
track | RemoteAudioTrack | 成员音频流 |
isPublished | bool | 音频流是否发布状态值 |
需要把audio进行绑定和解除绑定操作,这需要借助Unity的AudioSource类,应用测需要给每个房间内的成员绑定一个AudioSource,然后根据isPublished
进行绑定或者解绑操作。
代码示例
// 获取成员所有的 audioSource对象
var audioSource = gameUserObject.GetComponentInChildren<AudioSource>();
if (isPublish)
{
// 发布audio
track.Attach(audioSource);
}
else
{
// 取消audio
track.Detach(audioSource);
}