• 製品
  • 価格
  • リソース
  • サポート
このページは現在英語版のみで提供されており、日本語版も近日中に提供される予定です。ご利用いただきありがとうございます。

LiveSeatStore

Introduction

LiveSeatStore provides a complete set of seat management APIs, including taking seat, leaving seat, locking seat, unlocking seat, kicking user off seat, remote device control, etc.
Through this class, seat management functionality can be implemented in the live room.
Important:
Use the create(liveID:) factory method to create a LiveSeatStore instance, passing a valid live room ID.
Note:
Seat state updates are delivered through the state publisher. Subscribe to it to receive real-time updates of seat data in the room.

Features

Seat Management:Take seat, leave seat, lock seat, unlock seat operations
User Management:Kick user off seat, move user to specified seat
Device Control:Remote control of user's camera and microphone
Event Listening:Listen to seat-related events

Subscribable Data

LiveSeatState fields are described below:
Property
Type
Description
seatList
Seat list.
canvas
Canvas information.
speakingUsers
[String: Int]
Speaking users.
avStatistics
Audio and video statistics.

API List

Function
Description
Create seat management instance.
Seat event publisher.
Take seat.
Leave seat.
Lock seat.
Unlock seat.
Kick user off seat.
Move user.
Open remote camera.
Close remote camera.
Open remote microphone.
Close remote microphone.

Creating Instance

create

Create LiveSeatStore instance
public static func create(liveID: String) -> LiveSeatStore {
let store: LiveSeatStoreImpl = StoreFactory.shared.getStore(liveId: liveID)
return store
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
liveID
String
Required
Live room ID.

Observing State and Events

liveSeatEventPublisher

Seat event publisher

Seat Operations

takeSeat

Take seat
public func takeSeat(seatIndex: Int,
completion: CompletionClosure?)
{
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
seatIndex
Int
Required
Seat index.
completion
Required
Completion callback.

leaveSeat

Leave seat
public func leaveSeat(completion: CompletionClosure? = nil) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
completion
Required
Completion callback.

lockSeat

Lock seat
public func lockSeat(
seatIndex: Int,
completion: CompletionClosure?
) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
seatIndex
Int
Required
Seat index.
completion
Required
Completion callback.

unlockSeat

Unlock seat
public func unlockSeat(
seatIndex: Int,
completion: CompletionClosure?
) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
seatIndex
Int
Required
Seat index.
completion
Required
Completion callback.

User Management

kickUserOutOfSeat

Kick user off seat
public func kickUserOutOfSeat(userID: String,
completion: CompletionClosure?)
{
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String
Required
User ID.
completion
Required
Completion callback.

moveUserToSeat

Move user to seat
public func moveUserToSeat(
userID: String,
targetIndex: Int,
policy: MoveSeatPolicy?,
completion: CompletionClosure?
) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String
Required
User ID.
targetIndex
Int
Required
Target seat index.
policy
Required
Move policy.
completion
Required
Completion callback.

Remote Device Control

openRemoteCamera

Open remote camera
public func openRemoteCamera(
userID: String,
policy: DeviceControlPolicy,
completion: CompletionClosure?
) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String
Required
User ID.
policy
Required
Device control policy.
completion
Required
Completion callback.

closeRemoteCamera

Close remote camera
public func closeRemoteCamera(
userID: String,
completion: CompletionClosure?
) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String
Required
User ID.
completion
Required
Completion callback.

openRemoteMicrophone

Open remote microphone
public func openRemoteMicrophone(
userID: String,
policy: DeviceControlPolicy,
completion: CompletionClosure?
) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String
Required
User ID.
policy
Required
Device control policy.
completion
Required
Completion callback.

closeRemoteMicrophone

Close remote microphone
public func closeRemoteMicrophone(
userID: String,
completion: CompletionClosure?
) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
userID
String
Required
User ID.
completion
Required
Completion callback.

Data Structures

MoveSeatPolicy

Move seat policy
Enum Value
Description
abortWhenOccupied
Abort when occupied.
forceReplace
Force replace.
swapPosition
Swap position.

DeviceControlPolicy

Device control policy
Enum Value
Description
unlockOnly
Unlock only.

SuspendStatus

User suspend status
Enum Value
Description
none
Not suspended.
inBackground
User suspended in background.
inCalling
User is on a phone call.

LiveSeatEvent

Seat related callback events.
Enum Value
Description
onLocalCameraOpenedByAdmin
Triggered when the local camera is opened by an admin.
onLocalCameraClosedByAdmin
Triggered when the local camera is closed by an admin.
onLocalMicrophoneOpenedByAdmin
Triggered when the local microphone is opened by an admin.
onLocalMicrophoneClosedByAdmin
Triggered when the local microphone is closed by an admin.

SeatUserInfo

Seat user information
Property
Type
Description
userID
String
User ID.
userName
String
User name.
avatarURL
String
Avatar URL.
role
User role.
liveID
String
Live room ID.
microphoneStatus
Microphone status.
allowOpenMicrophone
Bool
Whether microphone can be opened.
cameraStatus
Camera status.
allowOpenCamera
Bool
Whether camera can be opened.
userSuspendStatus
User suspend status.

RegionInfo

Seat view coordinate information
Property
Type
Description
x
CGFloat
X coordinate.
y
CGFloat
Y coordinate.
w
CGFloat
Width.
h
CGFloat
Height.
zorder
Int
Z-order.

AVStatistics

Audio and video statistics information
Property
Type
Description
userID
String
User ID.
videoBitrate
UInt
Local video bitrate.
videoWidth
CGFloat
Local video width.
videoHeight
CGFloat
Local video height.
frameRate
UInt
Local video frame rate.
audioSampleRate
UInt
Audio sample rate.
audioBitrate
UInt
Audio bitrate.

SeatInfo

Seat information
Property
Type
Description
index
Int
Seat index.
isLocked
Bool
Whether locked.
userInfo
User information.
region
Region information.

LiveCanvas

Live canvas
Property
Type
Description
w
CGFloat
Width.
h
CGFloat
Height.
templateID
UInt
Template ID.

LiveSeatState

Seat state data provided by LiveSeatStore.
Property
Type
Description
seatList
Seat list.
canvas
Canvas information.
speakingUsers
[String: Int]
Speaking users.
avStatistics
Audio and video statistics.