提问者:小点点

Twilio Video:创建视频房间的用户离开时如何销毁视频房间?


我正在使用twilio视频。

我希望房间在本地参与者(创建房间的人)离开时被销毁。

到目前为止,当第一个创建的用户离开房间时,其他用户(房间内)仍然可以看到彼此的提要并可以聊天。

那么如何在上述场景中销毁一个视频房间呢?


共3个答案

匿名用户

Twilio开发者布道者在这里。

您可以使用状态回调和RESTAPI。

您需要做的是以某种方式记录哪个用户是您房间的所有者。然后,注册以接收视频房间状态回调。然后,您可以等待参与者断开连接事件,如果断开连接的参与者是房间的所有者,则使用RESTAPI中的房间资源将房间设置为已完成,这将断开所有剩余参与者的连接。

如果有帮助,请告诉我。

匿名用户

您只需要分离活动房间的轨道。

room.on('disconnected', function () {
    log('Left');
    if (previewTracks) {
        previewTracks.forEach(function (track) {
            track.stop();
        });
    }
    detachParticipantTracks(room.localParticipant);
    room.participants.forEach(detachParticipantTracks);
    activeRoom = null;
    document.getElementById('button-join').style.display = 'inline';
    document.getElementById('button-leave').style.display = 'none';
});

function detachParticipantTracks(participant) {
var tracks = Array.from(participant.tracks.values());
detachTracks(tracks);

}

匿名用户

您可以使用Twilio提供的DataTrackAPI。这允许您在连接到房间的参与者之间发送消息。

为LocalDataTrack创建实例

private var mLocalDataTrack = LocalDataTrack.create(mActivity)

创建房间并设置mLocalDataTrack

val connectOptionsBuilder = Builder(accessToken)
        .dataTracks(Collections.singletonList(mLocalDataTrack))
        .roomName(roomId.toString())

在您的视图中实现Remote参与者. Listener。监听器包含onDataTrackSubscribed方法,您需要覆盖和设置监听器

override fun onDataTrackSubscribed(
        remoteParticipant: RemoteParticipant,
        remoteDataTrackPublication: RemoteDataTrackPublication,
        remoteDataTrack: RemoteDataTrack
    ) {
        Timber.e("onDataTrackSubscribed")

        remoteDataTrack.setListener(this)
    }

然后在您的活动中实现RemoteDataTrack. Listener接口。

override fun onMessage(remoteDataTrack: RemoteDataTrack, messageBuffer: ByteBuffer) {

        Timber.e("Message is %s", messageBuffer)

    }

    override fun onMessage(remoteDataTrack: RemoteDataTrack, message: String) {

        if (message == "disconnect") {
            mRoom?.disconnect()
        }

    }

并在主机与房间断开连接时发送消息。

mLocalDataTrack?.send("disconnect")

当主持人通过按下按钮离开房间时,消息将发送给房间的其余参与者并断开连接。