atomicx-core sdk API Documentation

atomicx-core sdk

atomicx-core sdk is the latest generation of reactive APIs from Tencent Cloud, designed for instant messaging, audio/video calls, live streaming, voice chat rooms, and more. You can quickly build your own UI pages based on these APIs. It supports room management, screen sharing, member management, seat control, basic beauty effects, and other rich features, while ensuring 720P and 1080P HD quality. It maintains high-quality audio/video transmission even in weak network environments with 70% packet loss. Additionally, the SDK uses 48kHz high-quality audio sampling, combined with Tencent Ethereal Audio Lab's 3A processing algorithms to eliminate echo and howling, achieving full-link 128kbps high-quality stereo sound, bringing users a clear and immersive interactive experience. This page contains all API interfaces of atomicx-core sdk, categorized by functional modules.

LoginState

🔐 User Authentication and Login Management Module

Core Features: Provides basic authentication functions such as user login, logout, and personal information management, serving as the foundation of user identity for the entire system.

Technical Features: Supports multiple login methods, user information caching, login state persistence, and other features to ensure the security and reliability of user identity.

Business Value: Provides unified user authentication services for all business modules, serving as the foundation for system security and user experience.

Use Cases: Core authentication scenarios such as user login, identity verification, personal information management, and permission control.

Reactive Data

loginUserInfo

const loginUserInfo: Ref<LoginUserInfo | null>
Current logged-in user information Stores detailed information of the currently logged-in user, including user ID, nickname, avatar, etc.
Type: Ref<LoginUserInfo | null>

Example

import { useLoginState } from 'tuikit-atomicx-vue3';
const { loginUserInfo } = useLoginState();

// Watch for user information changes
watch(loginUserInfo, (newUserInfo) => {
  if (newUserInfo) {
    console.log('User information updated:', newUserInfo);
    console.log('User ID:', newUserInfo.userID);
    console.log('User nickname:', newUserInfo.nickname);
    console.log('userAvatar:', newUserInfo.avatarURL);
  }
});

// Get current user information
const currentUser = loginUserInfo.value;
if (currentUser) {
  console.log('Currently logged-in user:', currentUser.nickname);
}

API Functions

login

function login(loginParams: { userId: string; userSig: string; sdkAppId: number })
User login Login with the provided parameters, including userId, userSig, and sdkAppId

Example

import { useLoginState } from 'tuikit-atomicx-vue3';

const { login } = useLoginState();

// Login to the system
await login({
  userId: 'user_123456',
  userSig: 'xxx',
  sdkAppId: 1400000001
});

setSelfInfo

function setSelfInfo(userInfo: { nickName?: string; avatar?: string; signature?: string })
Set user personal information Update current logged-in user's personal profile information, including nickname, avatar URL and custom information

Example

import { useLoginState } from 'tuikit-atomicx-vue3';

const { setSelfInfo } = useLoginState();

// Set user personal information
await setSelfInfo({
  nickName: 'John',
  avatar: 'https://example.com/avatar.png',
  signature: 'this ismyofpersonalSignature'
});

logout

function logout()
User logout exitCurrentuserofloginstatus,clearuserinformation

Example

await logout();

DeviceState

🎥 Device Status Management Module

Core Features: Manages control of audio/video devices such as cameras and microphones, providing device status monitoring, permission checking, and other basic device services.

Technical Features: Supports multi-device management, real-time device status monitoring, dynamic permission checking, automatic device fault recovery, and other advanced features.

Business Value: Provides a stable device foundation for the live streaming system, ensuring the reliability of audio/video capture and user experience.

Use Cases: Device management, permission control, audio/video capture, device fault handling, and other basic technical scenarios.

Reactive Data

microphoneStatus

const microphoneStatus: Ref<DeviceStatus>
Microphone status Current microphone on/off status
Type: Ref<DeviceStatus>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { microphoneStatus } = useDeviceState();

// Watch for data changes
watch(microphoneStatus, (newValue) => {
  console.log('microphoneStatus updated:', newValue);
});

// Access data directly
console.log('Current microphoneStatus:', microphoneStatus.value);

microphoneList

const microphoneList: Ref<TUIDeviceInfo[]>
Microphone device list systeminavailableofMicrophone device list
Type: Ref<TUIDeviceInfo[]>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { microphoneList } = useDeviceState();

// Watch for data changes
watch(microphoneList, (newValue) => {
  console.log('microphoneList updated:', newValue);
});

// Access data directly
console.log('Current microphoneList:', microphoneList.value);

currentMicrophone

const currentMicrophone: Ref<TUIDeviceInfo | null>
Currently selected microphonedevice Currently active microphone deviceinformation

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { currentMicrophone } = useDeviceState();

// Watch for data changes
watch(currentMicrophone, (newValue) => {
  console.log('currentMicrophone updated:', newValue);
});

// Access data directly
console.log('Current currentMicrophone:', currentMicrophone.value);

microphoneLastError

const microphoneLastError: Ref<DeviceError>
microphonelastErrorinformation recordmicrophoneactionoflastErrorstatus
Type: Ref<DeviceError>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { microphoneLastError } = useDeviceState();

// Watch for data changes
watch(microphoneLastError, (newValue) => {
  console.log('microphoneLastError updated:', newValue);
});

// Access data directly
console.log('Current microphoneLastError:', microphoneLastError.value);

captureVolume

const captureVolume: Ref<any>
microphoneCapture volume microphoneaudiocaptureofvolumesize,range0-100
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { captureVolume } = useDeviceState();

// Watch for data changes
watch(captureVolume, (newValue) => {
  console.log('captureVolume updated:', newValue);
});

// Access data directly
console.log('Current captureVolume:', captureVolume.value);

currentMicVolume

const currentMicVolume: Ref<any>
Current microphone volume real-timeofmicrophonevolumedetectionvalue
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { currentMicVolume } = useDeviceState();

// Watch for data changes
watch(currentMicVolume, (newValue) => {
  console.log('currentMicVolume updated:', newValue);
});

// Access data directly
console.log('Current currentMicVolume:', currentMicVolume.value);

isMicrophoneTesting

const isMicrophoneTesting: Ref<any>
microphoneteststatus whetherin progressmicrophonedevicetest
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { isMicrophoneTesting } = useDeviceState();

// Watch for data changes
watch(isMicrophoneTesting, (newValue) => {
  console.log('isMicrophoneTesting updated:', newValue);
});

// Access data directly
console.log('Current isMicrophoneTesting:', isMicrophoneTesting.value);

testingMicVolume

const testingMicVolume: Ref<any>
testwhenofmicrophonevolume microphonetestduringofvolumedetectionvalue
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { testingMicVolume } = useDeviceState();

// Watch for data changes
watch(testingMicVolume, (newValue) => {
  console.log('testingMicVolume updated:', newValue);
});

// Access data directly
console.log('Current testingMicVolume:', testingMicVolume.value);

cameraStatus

const cameraStatus: Ref<DeviceStatus>
Camera status Current camera on/off status
Type: Ref<DeviceStatus>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { cameraStatus } = useDeviceState();

// Watch for data changes
watch(cameraStatus, (newValue) => {
  console.log('cameraStatus updated:', newValue);
});

// Access data directly
console.log('Current cameraStatus:', cameraStatus.value);

cameraList

const cameraList: Ref<TUIDeviceInfo[]>
Camera device list systeminavailableofCamera device list
Type: Ref<TUIDeviceInfo[]>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { cameraList } = useDeviceState();

// Watch for data changes
watch(cameraList, (newValue) => {
  console.log('cameraList updated:', newValue);
});

// Access data directly
console.log('Current cameraList:', cameraList.value);

currentCamera

const currentCamera: Ref<TUIDeviceInfo | null>
Currently selected cameradevice Currently active camera deviceinformation

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { currentCamera } = useDeviceState();

// Watch for data changes
watch(currentCamera, (newValue) => {
  console.log('currentCamera updated:', newValue);
});

// Access data directly
console.log('Current currentCamera:', currentCamera.value);

cameraLastError

const cameraLastError: Ref<DeviceError>
cameralastErrorinformation recordcameraactionoflastErrorstatus
Type: Ref<DeviceError>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { cameraLastError } = useDeviceState();

// Watch for data changes
watch(cameraLastError, (newValue) => {
  console.log('cameraLastError updated:', newValue);
});

// Access data directly
console.log('Current cameraLastError:', cameraLastError.value);

isCameraTesting

const isCameraTesting: Ref<any>
camerateststatus whetherin progresscameradevicetest
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { isCameraTesting } = useDeviceState();

// Watch for data changes
watch(isCameraTesting, (newValue) => {
  console.log('isCameraTesting updated:', newValue);
});

// Access data directly
console.log('Current isCameraTesting:', isCameraTesting.value);

isCameraTestLoading

const isCameraTestLoading: Ref<any>
Camera test loading status Whether camera test is loadingin
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { isCameraTestLoading } = useDeviceState();

// Watch for data changes
watch(isCameraTestLoading, (newValue) => {
  console.log('isCameraTestLoading updated:', newValue);
});

// Access data directly
console.log('Current isCameraTestLoading:', isCameraTestLoading.value);

isFrontCamera

const isFrontCamera: Ref<any>
Whether it is front camera CurrentuseofWhether it is front camera(moveend)
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { isFrontCamera } = useDeviceState();

// Watch for data changes
watch(isFrontCamera, (newValue) => {
  console.log('isFrontCamera updated:', newValue);
});

// Access data directly
console.log('Current isFrontCamera:', isFrontCamera.value);

localMirrorType

const localMirrorType: Ref<any>
Local video mirror type localvideovideointerfaceofmirrordisplaymode
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { localMirrorType } = useDeviceState();

// Watch for data changes
watch(localMirrorType, (newValue) => {
  console.log('localMirrorType updated:', newValue);
});

// Access data directly
console.log('Current localMirrorType:', localMirrorType.value);

localVideoQuality

const localVideoQuality: Ref<any>
Local video quality Local video quality setting
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { localVideoQuality } = useDeviceState();

// Watch for data changes
watch(localVideoQuality, (newValue) => {
  console.log('localVideoQuality updated:', newValue);
});

// Access data directly
console.log('Current localVideoQuality:', localVideoQuality.value);

speakerList

const speakerList: Ref<TUIDeviceInfo[]>
Speaker device list systeminavailableofSpeaker device list
Type: Ref<TUIDeviceInfo[]>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { speakerList } = useDeviceState();

// Watch for data changes
watch(speakerList, (newValue) => {
  console.log('speakerList updated:', newValue);
});

// Access data directly
console.log('Current speakerList:', speakerList.value);

currentSpeaker

const currentSpeaker: Ref<TUIDeviceInfo | null>
Currently selected speakerdevice Currently active speaker deviceinformation

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { currentSpeaker } = useDeviceState();

// Watch for data changes
watch(currentSpeaker, (newValue) => {
  console.log('currentSpeaker updated:', newValue);
});

// Access data directly
console.log('Current currentSpeaker:', currentSpeaker.value);

outputVolume

const outputVolume: Ref<any>
speakerOutput volume speakeraudiooutputofvolumesize,range0-100
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { outputVolume } = useDeviceState();

// Watch for data changes
watch(outputVolume, (newValue) => {
  console.log('outputVolume updated:', newValue);
});

// Access data directly
console.log('Current outputVolume:', outputVolume.value);

currentAudioRoute

const currentAudioRoute: Ref<AudioRoute>
Current audio route Currentaudiooutputofroutemethods(speaker/earpieceetc.)
Type: Ref<AudioRoute>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { currentAudioRoute } = useDeviceState();

// Watch for data changes
watch(currentAudioRoute, (newValue) => {
  console.log('currentAudioRoute updated:', newValue);
});

// Access data directly
console.log('Current currentAudioRoute:', currentAudioRoute.value);

isSpeakerTesting

const isSpeakerTesting: Ref<any>
speakerteststatus whetherin progressspeakerdevicetest
Type: Ref<any>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { isSpeakerTesting } = useDeviceState();

// Watch for data changes
watch(isSpeakerTesting, (newValue) => {
  console.log('isSpeakerTesting updated:', newValue);
});

// Access data directly
console.log('Current isSpeakerTesting:', isSpeakerTesting.value);

screenStatus

const screenStatus: Ref<DeviceStatus>
Screen sharing status CurrentScreen sharing on/off status
Type: Ref<DeviceStatus>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { screenStatus } = useDeviceState();

// Watch for data changes
watch(screenStatus, (newValue) => {
  console.log('screenStatus updated:', newValue);
});

// Access data directly
console.log('Current screenStatus:', screenStatus.value);

networkInfo

const networkInfo: Ref<NetworkInfo | null>
Network information Currentnetworkconnectionofqualityandstatusinformation
Type: Ref<NetworkInfo | null>

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { networkInfo } = useDeviceState();

// Watch for data changes
watch(networkInfo, (newValue) => {
  console.log('networkInfo updated:', newValue);
});

// Access data directly
console.log('Current networkInfo:', networkInfo.value);

API Functions

openLocalMicrophone

function openLocalMicrophone()
turn onlocalmicrophone turn onlocalmicrophonedevice,startaudiocapture,andhandlingeachtypescancanofErrorsituation

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { openLocalMicrophone } = useDeviceState();

// turn onmicrophone
try {
  await openLocalMicrophone();
  console.log('microphoneturn onsuccessful');
} catch (error) {
  console.error('microphoneturn onfailed:', error);
}

closeLocalMicrophone

function closeLocalMicrophone()
Close local microphone Close local microphonedevice,stopaudiocapture

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { closeLocalMicrophone } = useDeviceState();

// turn offmicrophone
await closeLocalMicrophone();

muteLocalAudio

function muteLocalAudio()
Mute local audio Mute local audio,notturn offmicrophonedevicebutstopaudiotransmission

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { muteLocalAudio } = useDeviceState();

// Mute local audio
await muteLocalAudio();

unmuteLocalAudio

function unmuteLocalAudio()
CancelMute local audio CancelMute local audio,recoveryaudiotransmission

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { unmuteLocalAudio } = useDeviceState();

// CancelMute local audio
await unmuteLocalAudio();

getMicrophoneList

function getMicrophoneList()
GetMicrophone device list GetsysteminavailableofMicrophone device list

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { getMicrophoneList, microphoneList } = useDeviceState();

// Get microphone list
try {
  await getMicrophoneList();
  console.log('microphonelist:', microphoneList.value);
} catch (error) {
  console.error('Get microphone listfailed:', error);
}

setCurrentMicrophone

function setCurrentMicrophone(deviceConfig: { deviceId: string })
Set current microphonedevice Switch to the specified microphone device

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { setCurrentMicrophone } = useDeviceState();

// switchmicrophonedevice
await setCurrentMicrophone({
  deviceId: 'default'
});

startMicrophoneTest

function startMicrophoneTest(testConfig: { interval?: number })
Start microphone test startmicrophonevolumedetection,canSetdetectionroominterval

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { startMicrophoneTest } = useDeviceState();

// Start microphone test,every200msdetectiononcevolume
await startMicrophoneTest({
  interval: 200
});

setCaptureVolume

function setCaptureVolume(volume: number)
SetaudioCapture volume SetmicrophoneofaudioCapture volumesize,range0-100

parameter

Parameter Type description
volume number volumesize(0-100)

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { setCaptureVolume } = useDeviceState();

// SetCapture volumeas80%
await setCaptureVolume(80);

setOutputVolume

function setOutputVolume(volume: number)
Setaudioplayvolume Setspeakerofaudioplayvolumesize,range0-100

parameter

Parameter Type description
volume number volumesize(0-100)

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { setOutputVolume } = useDeviceState();

// Setplayvolumeas60%
await setOutputVolume(60);

stopMicrophoneTest

function stopMicrophoneTest()
Stop microphone testing stopCurrentin progressofmicrophonedevicetest

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { stopMicrophoneTest } = useDeviceState();

// Stop microphone testing
await stopMicrophoneTest();

getSpeakerList

function getSpeakerList()
GetSpeaker device list GetsysteminavailableofSpeaker device list

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { getSpeakerList, speakerList } = useDeviceState();

// Get speaker list
try {
  await getSpeakerList();
  console.log('speakerlist:', speakerList.value);
} catch (error) {
  console.error('Get speaker listfailed:', error);
}

setCurrentSpeaker

function setCurrentSpeaker(deviceConfig: { deviceId: string })
Set current speakerdevice Switch to the specified speaker device

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { setCurrentSpeaker } = useDeviceState();

// switchspeakerdevice
await setCurrentSpeaker({
  deviceId: 'default'
});

setAudioRoute

function setAudioRoute(output: AudioRoute)
Set audio route Set audio output routemethods(speaker/earpieceetc.)

parameter

Parameter Type description
output AudioRoute audioroutetype

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { setAudioRoute } = useDeviceState();

// Setasspeakermode
await setAudioRoute(AudioRoute.Speakerphone);

// Setasearpiecemode
await setAudioRoute(AudioRoute.Earpiece);

startSpeakerTest

function startSpeakerTest(testConfig: { filePath: string })
Start speaker test playspecifiedaudiofileperformspeakertest

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { startSpeakerTest } = useDeviceState();

// playtestaudioperformspeakertest
await startSpeakerTest({
  filePath: '/assets/audio/test.mp3'
});

stopSpeakerTest

function stopSpeakerTest()
Stop speaker testing stopCurrentin progressofspeakerdevicetest

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { stopSpeakerTest } = useDeviceState();

// Stop speaker testing
await stopSpeakerTest();

openLocalCamera

function openLocalCamera()
turn onlocalcamera turn onlocalcameradevice,inmoveendwillaccording tobeforeaftercameraSetperformturn on

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { openLocalCamera } = useDeviceState();

// turn oncamera
try {
  await openLocalCamera();
  console.log('cameraturn onsuccessful');
} catch (error) {
  console.error('cameraturn onfailed:', error);
}

closeLocalCamera

function closeLocalCamera()
Close local camera Close local cameradevice,stopvideocapture

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { closeLocalCamera } = useDeviceState();

// turn offcamera
await closeLocalCamera();

getCameraList

function getCameraList()
GetCamera device list GetsysteminavailableofCamera device list

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { getCameraList, cameraList } = useDeviceState();

// Get camera list
try {
  await getCameraList();
  console.log('cameralist:', cameraList.value);
} catch (error) {
  console.error('Get camera listfailed:', error);
}

setCurrentCamera

function setCurrentCamera(deviceConfig: { deviceId: string })
Set current cameradevice Switch to the specified camera device

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { setCurrentCamera } = useDeviceState();

// Switch cameradevice
await setCurrentCamera({
  deviceId: 'default'
});

switchCamera

function switchCamera(cameraConfig: { isFrontCamera: boolean })
Switch front/rear camera Switch between front and rear cameras

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { switchCamera } = useDeviceState();

// switchtofrontcamera
await switchCamera({
  isFrontCamera: true
});

switchMirror

function switchMirror(mirrorConfig: { mirror: MirrorType })
switchvideomirrormode Setvideovideointerfaceofmirroreffect

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { switchMirror } = useDeviceState();

// Setvideomirrormode
await switchMirror({
  mirror: MirrorType.Enable
});

updateVideoQuality

function updateVideoQuality(qualityParams: { quality: VideoQuality })
Update video quality updatevideomixstreamofqualityparameter

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { updateVideoQuality } = useDeviceState();

// SetvideoqualityasHD720P
await updateVideoQuality({
  quality: VideoQuality.HD720P
});

startCameraDeviceTest

function startCameraDeviceTest(testConfig: { view: string })
Start camera device test inspecifiedviewindisplaycamerapreview

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { startCameraDeviceTest } = useDeviceState();

// inspecifiedDOMmetaelementinpreviewcamera
await startCameraDeviceTest({
  view: 'camera-preview-container'
});

startScreenShare

function startScreenShare(shareConfig?: { screenAudio?: boolean; view?: string })
Start screen sharing startsharingscreencontent,canselectionwhethercontainssystemaudio

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { startScreenShare } = useDeviceState();

// Start screen sharing,containssystemaudio
await startScreenShare({
  screenAudio: true,
  view: 'screen-share-container'
});

stopScreenShare

function stopScreenShare()
Stop screen sharing Stop current screen sharing

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { stopScreenShare } = useDeviceState();

// Stop screen sharing
await stopScreenShare();

stopCameraDeviceTest

function stopCameraDeviceTest()
Stop camera device test stopCurrentin progressofcameradevicetest

Example

import { useDeviceState } from 'tuikit-atomicx-vue3';

const { stopCameraDeviceTest } = useDeviceState();

// Stop camera testing
await stopCameraDeviceTest();

screenCaptureStopped

function screenCaptureStopped()
screensharingstopcallback whenscreensharingstopwhenofcallbackfunctions

Example

// internaluse,whenscreensharingstopwhenautomaticcall
screenCaptureStopped();

LiveListState

📺 Live listManagement Module

Core Features:managementliveroomofcompletelifecycle,includingcreate、join、leave、endetc.corebusinessstreamprocess,supportsLive listofpaginationGetandreal-timeupdate。

Technical Features:supportspaginationloading、real-timestatussync、liveinformationdynamicupdate,usesReactive Datamanagement,ensureUIwithdatastatusreal-timesync。AddedliveListandliveListCursorReactive Data,providesfetchLiveListAPI Functions。

Business Value:asliveplatformprovidescoreofliveroommanagementcapability,supportslarge-scaleandsendlivescenarios,yeslivebusinessofbasicfacility。

Use Cases:Live listdisplay、liveroomcreate、livestatusmanagement、livedatastatisticsetc.corebusinessscenarios。

Reactive Data

currentLive

const currentLive: Ref<LiveInfo | null>
convertTUILiveInfoasLiveInfoformat willTUIRoomEnginereturnofliveinformationconvertasshoulduseinternaluseofLiveInfoformat @param {TUILiveInfo} liveInfo - TUIRoomEnginereturnofliveinformation @returns {LiveInfo} convertafterofliveinformationobject
Type: Ref<LiveInfo | null>

Example

const tuiLiveInfo = await roomEngine.getLiveInfo();
const liveInfo = getLiveInfo(tuiLiveInfo);
console.log('convertafterofliveinformation:', liveInfo);

liveList

const liveList: Ref<any>
Live listdata,containsallliveroomofinformation storeCurrentGettoofallliveroominformationlist
Type: Ref<any>

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { liveList } = useLiveListState();

// Watch for data changes
watch(liveList, (newValue) => {
  console.log('liveList updated:', newValue);
});

// Access data directly
console.log('Current liveList:', liveList.value);

liveListCursor

const liveListCursor: Ref<any>
Live listpaginationcursor,used forGetunderone pagedata used forpaginationGetLive listofcursoridentifier
Type: Ref<any>

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { liveListCursor } = useLiveListState();

// Watch for data changes
watch(liveListCursor, (newValue) => {
  console.log('liveListCursor updated:', newValue);
});

// Access data directly
console.log('Current liveListCursor:', liveListCursor.value);

API Functions

createLive

function createLive(liveParams: CreateLiveParams)
Create liveroom Create a new live room,supportsSetliveroomnamename、encapsulateinterface、background、seatmodeetc.configuration

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { createLive } = useLiveListState();

// Create a live room with custom settings
await createLive({
  name: 'My Live Room',
  coverUrl: 'https://example.com/cover.jpg',
  backgroundUrl: 'https://example.com/bg.jpg',
  seatMode: 'free'
});

joinLive

function joinLive(joinParams: { liveId: string })
Join liveroom throughliveroomIDJoin the specified live room

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { joinLive } = useLiveListState();

// Join a live room by ID
await joinLive({
  liveId: 'live_room_123456'
});

leaveLive

function leaveLive()
Leave liveroom exitCurrentjoinofliveroom,clearliveroomstatus

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { leaveLive } = useLiveListState();

// Leave liveroom
try {
  await leaveLive();
  console.log('successfulLeave liveroom');
} catch (error) {
  console.error('Leave liveroomfailed:', error);
}

endLive

function endLive()
End live hostendCurrent live,destroyliveroom

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { endLive } = useLiveListState();

// End live(hostaction)
try {
  await endLive();
  console.log('livealreadyend');
} catch (error) {
  console.error('End livefailed:', error);
}

updateLiveInfo

function updateLiveInfo(updateParams: UpdateLiveInfoParams)
Update live room info Update basic information of the live room,such asencapsulateinterface、background、categorizedetc.

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { updateLiveInfo } = useLiveListState();

// Update live room info
await updateLiveInfo({
  coverUrl: 'https://example.com/new-cover.jpg',
  category: 'entertainment'
});

queryMetaData

function queryMetaData(queryParams: { keys: string[] })
Query metadata queryliveroomofcustommetadatainformation

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { queryMetaData } = useLiveListState();

// Query metadata by keys
await queryMetaData({
  keys: ['roomTitle', 'announcement', 'customData']
});

updateLiveMetaData

function updateLiveMetaData(metaParams: { metaData: Record })
Update live room metadata updateliveroomofcustommetadata

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { updateLiveMetaData } = useLiveListState();

// Update live room metadata
await updateLiveMetaData({
  metaData: {
    roomTitle: 'New Room Title',
    announcement: 'Welcome to my live room!'
  }
});

fetchLiveList

function fetchLiveList(listParams: { cursor?: string; count?: number })
GetLive list supportspaginationGetLive list,canspecifiedcursorandcountperformpaginationquery

Example

import { useLiveListState } from 'tuikit-atomicx-vue3';

const { fetchLiveList } = useLiveListState();

// Fetch live list with pagination
await fetchLiveList({
  cursor: '',
  count: 20
});

LiveSeatState

🪑 liveroomseatManagement Module

Core Features:achievemultiplepersonco-guestscenariosunderofseatcontrol,supportscomplexofseatstatusmanagementandaudio/videodevicecontrol,includingTake seat、Leave seat、seatlocketc.completefunctions。

Technical Features:based onWebRTCtechnical,supportsmultiplerouteaudio/videostreammanagement,providesseatlock、devicecontrol、permissionmanagementetc.advancedfunctions。AddedseatList、canvas、speakingUsers、networkQualitiesReactive Data,withandcompleteofseatactionAPI。

Business Value:asmultiplepersoninteractionliveprovidescoretechnicalsupport,supportsPK、co-guest、multiplepersongameetc.richofinteractionscenarios。

Use Cases:multiplepersonco-guest、hostPK、interactiongame、inconnectioneducation、meetingliveetc.needmultiplepersonaudio/videointeractionofscenarios。

Reactive Data

seatList

const seatList: Ref<any>
Seat list,containsallseatofstatusanduserinformation storeCurrent liveroomofallseatinformation
Type: Ref<any>

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { seatList } = useLiveSeatState();

// Watch for data changes
watch(seatList, (newValue) => {
  console.log('seatList updated:', newValue);
});

// Access data directly
console.log('Current seatList:', seatList.value);

canvas

const canvas: Ref<any>
Canvasconfiguration,used forvideorenderingandlayoutmanagement videorenderingofCanvasconfigurationinformation
Type: Ref<any>

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { canvas } = useLiveSeatState();

// Watch for data changes
watch(canvas, (newValue) => {
  console.log('canvas updated:', newValue);
});

// Access data directly
console.log('Current canvas:', canvas.value);

speakingUsers

const speakingUsers: Ref<any>
List of speaking users Currentisinspeakofuserinformationlist
Type: Ref<any>

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { speakingUsers } = useLiveSeatState();

// Watch for data changes
watch(speakingUsers, (newValue) => {
  console.log('speakingUsers updated:', newValue);
});

// Access data directly
console.log('Current speakingUsers:', speakingUsers.value);

networkQualities

const networkQualities: Ref<any>
Network qualitiesinformation,containseachuserofNet status eachuserofnetworkconnectionqualityinformation
Type: Ref<any>

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { networkQualities } = useLiveSeatState();

// Watch for data changes
watch(networkQualities, (newValue) => {
  console.log('networkQualities updated:', newValue);
});

// Access data directly
console.log('Current networkQualities:', networkQualities.value);

API Functions

takeSeat

function takeSeat(seatParams: { seatIndex: number })
userTake seat userapplyontospecifiedseat,normaluserdirectlyTake seat,managementmemberneeduseothermethods

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { takeSeat } = useLiveSeatState();

// Take seat at index 1
await takeSeat({
  seatIndex: 1
});

leaveSeat

function leaveSeat(seatParams: { seatIndex: number })
userLeave seat userproactiveleaveCurrentseat

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { leaveSeat } = useLiveSeatState();

// Leave seat at index 1
await leaveSeat({
  seatIndex: 1
});

lockSeat

function lockSeat(lockParams: { seatIndex: number })
Lock seat managementmemberLock specified seat,preventuserTake seat

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { lockSeat } = useLiveSeatState();

// Lock seat at index 2
await lockSeat({
  seatIndex: 2
});

unLockSeat

function unLockSeat(unlockParams: { seatIndex: number })
Unlock seat managementmemberUnlock specified seat,allowuserTake seat

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { unLockSeat } = useLiveSeatState();

// Unlock seat at index 2
await unLockSeat({
  seatIndex: 2
});

kickUserOutOfSeat

function kickUserOutOfSeat(kickParams: { seatIndex: number; userId: string })
kickuserLeave seat managementmemberforcewillspecifieduserkickLeave seatposition

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { kickUserOutOfSeat } = useLiveSeatState();

// Kick user out of seat
await kickUserOutOfSeat({
  seatIndex: 1,
  userId: 'user_123'
});

moveUserToSeat

function moveUserToSeat(moveParams: { userId: string; targetSeatIndex: number })
Move user to specified seat managementmemberwillusermovetospecifiedofseat,supportsnotsameofmovestrategy

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { moveUserToSeat } = useLiveSeatState();

// Move user to target seat
await moveUserToSeat({
  userId: 'user_123',
  targetSeatIndex: 3
});

openRemoteCamera

function openRemoteCamera(cameraParams: { userId: string })
turn onremotecamera managementmemberunlockspecifieduserofcamera,allowuserturn oncamera

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { openRemoteCamera } = useLiveSeatState();

// Open remote user's camera
await openRemoteCamera({
  userId: 'user_123'
});

closeRemoteCamera

function closeRemoteCamera(cameraParams: { userId: string })
turn offremotecamera managementmemberforceturn offspecifieduserofcamera

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { closeRemoteCamera } = useLiveSeatState();

// Close remote user's camera
await closeRemoteCamera({
  userId: 'user_123'
});

openRemoteMicrophone

function openRemoteMicrophone(micParams: { userId: string })
turn onremotemicrophone managementmemberunlockspecifieduserofmicrophone,allowuserturn onmicrophone

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { openRemoteMicrophone } = useLiveSeatState();

// Open remote user's microphone
await openRemoteMicrophone({
  userId: 'user_123'
});

closeRemoteMicrophone

function closeRemoteMicrophone(micParams: { userId: string })
turn offremotemicrophone managementmemberforceturn offspecifieduserofmicrophone

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { closeRemoteMicrophone } = useLiveSeatState();

// Close remote user's microphone
await closeRemoteMicrophone({
  userId: 'user_123'
});

muteMicrophone

function muteMicrophone(muteParams: { userId: string })
Mute microphone Mute the specified user's microphone

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { muteMicrophone } = useLiveSeatState();

// Mute user's microphone
await muteMicrophone({
  userId: 'user_123'
});

unmuteMicrophone

function unmuteMicrophone(unmuteParams: { userId: string })
CancelMute microphone CancelMute the specified user's microphone

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { unmuteMicrophone } = useLiveSeatState();

// Unmute user's microphone
await unmuteMicrophone({
  userId: 'user_123'
});

startPlayStream

function startPlayStream(streamParams: { userId: string; streamType: number })
Start play stream Start playseatofaudio/videostreamtospecifiedcontentdevice

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { startPlayStream } = useLiveSeatState();

// Start playing user's stream
await startPlayStream({
  userId: 'user_123',
  streamType: 0
});

stopPlayStream

function stopPlayStream(streamParams: { userId: string; streamType: number })
Stop play stream Stop playseatofaudio/videostream

Example

import { useLiveSeatState } from 'tuikit-atomicx-vue3';

const { stopPlayStream } = useLiveSeatState();

// Stop playing user's stream
await stopPlayStream({
  userId: 'user_123',
  streamType: 0
});

LiveAudienceState

👥 liveroomaudienceManagement Module

Core Features:managementliveroomAudience list,providesaudiencepermissioncontrol、managementmemberSetetc.liveroomorder maintenancefunctions,supportsreal-timeaudiencestatistics。

Technical Features:supportsreal-timeAudience listupdate、permissiongradingmanagement、batchactionetc.advancedfunctions,ensureliveroomorderanduserexperience。AddedaudienceListandaudienceCountReactive Data。

Business Value:asliveplatformprovidescompleteofaudiencemanagementsolution,supportslarge-scaleaudiencescenariosunderoforder maintenance。

Use Cases:audiencemanagement、permissioncontrol、liveroomorder maintenance、audienceinteractionmanagementetc.corebusinessscenarios。

Reactive Data

audienceList

const audienceList: Ref<any>
Audience list,containsliveroomallaudienceofinformation Current liveroomofaudienceuserlist
Type: Ref<any>

Example

import { useLiveAudienceState } from 'tuikit-atomicx-vue3';

const { audienceList } = useLiveAudienceState();

// Watch for data changes
watch(audienceList, (newValue) => {
  console.log('audienceList updated:', newValue);
});

// Access data directly
console.log('Current audienceList:', audienceList.value);

audienceCount

const audienceCount: Ref<any>
audiencetotalstatistics Current liveroomofaudiencetotalcount
Type: Ref<any>

Example

import { useLiveAudienceState } from 'tuikit-atomicx-vue3';

const { audienceCount } = useLiveAudienceState();

// Watch for data changes
watch(audienceCount, (newValue) => {
  console.log('audienceCount updated:', newValue);
});

// Access data directly
console.log('Current audienceCount:', audienceCount.value);

API Functions

fetchAudienceList

function fetchAudienceList(fetchParams: { cursor?: string; count?: number })
GetAudience list fromroomroomengineGetCurrentroomroomofuserlist,filter outhost,andupdateAudience liststatus

Example

import { useLiveAudienceState } from 'tuikit-atomicx-vue3';

const { fetchAudienceList } = useLiveAudienceState();

// Fetch audience list with pagination
await fetchAudienceList({
  cursor: '',
  count: 50
});

setAdministrator

function setAdministrator(adminParams: { userId: string })
Set administrator Set specified user as room administrator,managementmemberhavehasmorehighofpermission

Example

import { useLiveAudienceState } from 'tuikit-atomicx-vue3';

const { setAdministrator } = useLiveAudienceState();

// Set user as administrator
await setAdministrator({
  userId: 'user_123'
});

revokeAdministrator

function revokeAdministrator(revokeParams: { userId: string })
Revoke administratorpermission willspecifieduserofmanagementmemberpermissionrevoke,recoveryasnormaluser

Example

import { useLiveAudienceState } from 'tuikit-atomicx-vue3';

const { revokeAdministrator } = useLiveAudienceState();

// Revoke administrator privileges
await revokeAdministrator({
  userId: 'user_123'
});

kickUserOutOfRoom

function kickUserOutOfRoom(kickParams: { userId: string })
Kick user out of room willspecifieduserfromCurrentroomroominremove,theuserwillnonemethodcontinueparameterwithlive

Example

import { useLiveAudienceState } from 'tuikit-atomicx-vue3';

const { kickUserOutOfRoom } = useLiveAudienceState();

// Kick user out of room
await kickUserOutOfRoom({
  userId: 'user_123'
});

disableSendMessage

function disableSendMessage(muteParams: { userId: string; duration?: number })
disable/enableuserSend message managementmembercanwithdisableorenablespecifieduserinroomroominSend messageofpermission

Example

import { useLiveAudienceState } from 'tuikit-atomicx-vue3';

const { disableSendMessage } = useLiveAudienceState();

// Disable user from sending messages for 10 minutes
await disableSendMessage({
  userId: 'user_123',
  duration: 600
});

LiveMonitorState

📊 livemonitoringManagement Module

Core Features:providesliveroomreal-timemonitoringfunctions,includinglivestatusmonitoring、datastatistics、abnormaldetectionetc.coremonitoringcapability,supportsmultipleliveroommonitoring。

Technical Features:supportsreal-timedatacapture、multipledimensiondegreemonitoringmetrics、intelligentcanalertmechanism,ensureliveservicesofstablepropertyandreliability。AddedmonitorLiveInfoListReactive Data,optimizemonitoringAPI。

Business Value:asliveplatformprovidesfulldirectionpositionofmonitoringguarantee,andwhensendcurrentandhandlingabnormalsituation,enhanceservicesquality。

Use Cases:livequalitymonitoring、propertycananalysis、abnormalalert、datastatisticsetc.operationmanagementscenarios。

Reactive Data

monitorLiveInfoList

const monitorLiveInfoList: Ref<any>
List of monitored live room information List of live room information being monitored
Type: Ref<any>

Example

import { useLiveMonitorState } from 'tuikit-atomicx-vue3';

const { monitorLiveInfoList } = useLiveMonitorState();

// Watch for data changes
watch(monitorLiveInfoList, (newValue) => {
  console.log('monitorLiveInfoList updated:', newValue);
});

// Access data directly
console.log('Current monitorLiveInfoList:', monitorLiveInfoList.value);

API Functions

init

function init(initParams: { sdkAppId: number; userId: string; userSig: string })
Initializemonitoring Initializelivemonitoringservices

Example

import { useLiveMonitorState } from 'tuikit-atomicx-vue3';

const { init } = useLiveMonitorState();

// Initialize live monitor service
await init({
  sdkAppId: 1400000001,
  userId: 'admin_user',
  userSig: 'eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS...'
});

getLiveList

function getLiveList(listParams: { cursor?: string; count?: number })
GetLive list GetCurrentin progressofLive list

Example

import { useLiveMonitorState } from 'tuikit-atomicx-vue3';

const { getLiveList } = useLiveMonitorState();

// Get live list with pagination
await getLiveList({
  cursor: '',
  count: 20
});

closeRoom

function closeRoom(closeParams: { roomId: string })
Close room forceClose the specified live room

Example

import { useLiveMonitorState } from 'tuikit-atomicx-vue3';

const { closeRoom } = useLiveMonitorState();

// Close a live room
await closeRoom({
  roomId: 'room_123456'
});

sendMessage

function sendMessage(sendParams: { content: string; type?: string })
Send message sendinputboxinofmessagecontent

Example

import { useLiveMonitorState } from 'tuikit-atomicx-vue3';

const { sendMessage } = useLiveMonitorState();

// Send a text message
await sendMessage({
  content: 'Hello everyone!',
  type: 'text'
});

startPlay

function startPlay(playParams: { roomId: string; userId: string })
Start play Start playspecifieduseroflivestream

Example

import { useLiveMonitorState } from 'tuikit-atomicx-vue3';

const { startPlay } = useLiveMonitorState();

// Start playing a live stream
await startPlay({
  roomId: 'room_123456',
  userId: 'host_user'
});

stopPlay

function stopPlay(stopParams: { roomId: string; userId: string })
Stop play Stop playspecifieduseroflivestream

Example

import { useLiveMonitorState } from 'tuikit-atomicx-vue3';

const { stopPlay } = useLiveMonitorState();

// Stop playing a live stream
await stopPlay({
  roomId: 'room_123456',
  userId: 'host_user'
});

muteLiveAudio

function muteLiveAudio(muteParams: { roomId: string; userId: string; isMuted: boolean })
Mute live audio controlspecifieduserofaudioplaystatus

Example

import { useLiveMonitorState } from 'tuikit-atomicx-vue3';

const { muteLiveAudio } = useLiveMonitorState();

// Mute live audio
await muteLiveAudio({
  roomId: 'room_123456',
  userId: 'host_user',
  isMuted: true
});

CoGuestState

🎤 co-guestguestManagement Module

Core Features:handlingaudiencewithhostofroomofco-guestinteraction,managementco-guestapply、invite、accept、rejectetc.completeofco-gueststreamprocess,supportsco-gueststatusmanagement。

Technical Features:based onreal-timeaudio/videotechnical,supportsco-gueststatusreal-timesync、audio/videoqualityadaptiveshould、networkconditionmonitoringetc.advancedfunctions。Addedconnected、invitees、applicants、candidatesReactive DataandapplyForSeatAPI。

Business Value:asliveplatformprovidesaudienceparameterwithinteractionofcorecapability,enhanceuserstickypropertyandlivefun。

Use Cases:audienceco-guest、interactionQ&A、inconnectionKsong、gameliveetc.needaudienceparameterwithofinteractionscenarios。

Reactive Data

candidates

const candidates: Ref<any>
candidateco-guestuserlist Candidate users for co-guest invitationlist,excludeyour own、alreadyco-guestuser、alreadyinviteuserandApplicant
Type: Ref<any>

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { candidates } = useCoGuestState();

// Watch for data changes
watch(candidates, (newValue) => {
  console.log('candidates updated:', newValue);
});

// Access data directly
console.log('Current candidates:', candidates.value);

connected

const connected: Ref<any>
co-guestconnectionstatus Currentalreadyco-guestuserofinformationlist
Type: Ref<any>

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { connected } = useCoGuestState();

// Watch for data changes
watch(connected, (newValue) => {
  console.log('connected updated:', newValue);
});

// Access data directly
console.log('Current connected:', connected.value);

invitees

const invitees: Ref<any>
beeninviteofuserlist Currentalreadysendco-guestinviteofuserlist
Type: Ref<any>

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { invitees } = useCoGuestState();

// Watch for data changes
watch(invitees, (newValue) => {
  console.log('invitees updated:', newValue);
});

// Access data directly
console.log('Current invitees:', invitees.value);

applicants

const applicants: Ref<any>
List of users who have applied for co-guest Currentapplyco-guestofuserinformationlist
Type: Ref<any>

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { applicants } = useCoGuestState();

// Watch for data changes
watch(applicants, (newValue) => {
  console.log('applicants updated:', newValue);
});

// Access data directly
console.log('Current applicants:', applicants.value);

API Functions

cancelApplication

function cancelApplication(cancelParams: { requestId: string })
Cancel co-guest application CancelCurrentuserinitiateofco-guestapply,recalletc.pendinghostresponseofrequest

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { cancelApplication } = useCoGuestState();

// Cancel co-guest application
await cancelApplication({
  requestId: 'req_123456'
});

acceptApplication

function acceptApplication(acceptParams: { requestId: string })
Accept co-guest application hostacceptaudienceofco-guestapply,allowaudienceTake seat

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { acceptApplication } = useCoGuestState();

// Accept co-guest application
await acceptApplication({
  requestId: 'req_123456'
});

rejectApplication

function rejectApplication(rejectParams: { requestId: string })
Reject co-guest application hostrejectaudienceofco-guestapply,notallowaudienceTake seat

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { rejectApplication } = useCoGuestState();

// Reject co-guest application
await rejectApplication({
  requestId: 'req_123456'
});

cancelInvitation

function cancelInvitation(cancelParams: { requestId: string })
Cancel co-guest invitation hostCancel sent co-guest invitation,recalletc.pendinguserresponseofinvite

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { cancelInvitation } = useCoGuestState();

// Cancel co-guest invitation
await cancelInvitation({
  requestId: 'req_123456'
});

acceptInvitation

function acceptInvitation(acceptParams: { requestId: string })
Accept co-guest invitation audienceAccept host's co-guest invitation,samemeaningTake seatco-guest

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { acceptInvitation } = useCoGuestState();

// Accept co-guest invitation
await acceptInvitation({
  requestId: 'req_123456'
});

rejectInvitation

function rejectInvitation(rejectParams: { requestId: string })
Reject co-guest invitation audienceReject host's co-guest invitation,notsamemeaningTake seatco-guest

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { rejectInvitation } = useCoGuestState();

// Reject co-guest invitation
await rejectInvitation({
  requestId: 'req_123456'
});

disConnect

function disConnect(disconnectParams: { userId: string })
Disconnect co-guestconnection co-guestguestproactiveDisconnect co-guestconnection,leaveseat

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { disConnect } = useCoGuestState();

// Disconnect co-guest connection
await disConnect({
  userId: 'user_123'
});

applyForSeat

function applyForSeat(applyParams: { seatIndex: number; timeout?: number })
applyco-guestseat tohostapplyco-guestseat,initiateco-guestrequestandetc.pendinghostresponse

Example

import { useCoGuestState } from 'tuikit-atomicx-vue3';

const { applyForSeat } = useCoGuestState();

// Apply for a seat with 60 seconds timeout
await applyForSeat({
  seatIndex: 1,
  timeout: 60
});

CoHostState

🤝 co-guesthostManagement Module

Core Features:achievehostroomofco-guestfunctions,supportshostinvite、co-guestapply、co-gueststatusmanagementetc.hostroominteractionfunctions,providescompleteofhostco-gueststreamprocess。

Technical Features:supportsmultiplehostaudio/videosync、videoinvideodisplay、audio/videoqualityoptimizeetc.advancedtechnical,ensureco-guestexperienceofstreamsmoothproperty。AddedcoHostStatus、connected、applicant、invitees、candidatesReactive Dataandcompleteofco-guestcontrolAPI。

Business Value:asliveplatformprovideshostroomcollaborationofcorecapability,supportsPK、cooperationliveetc.advancedbusinessscenarios。

Use Cases:hostPK、cooperationlive、crossplatformco-guest、hostinteractionetc.advancedlivescenarios。

Reactive Data

coHostStatus

const coHostStatus: Ref<any>
co-guesthoststatus Currentuserofco-gueststatus,according towhetherinalreadyco-guestlistinjudge
Type: Ref<any>

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { coHostStatus } = useCoHostState();

// Watch for data changes
watch(coHostStatus, (newValue) => {
  console.log('coHostStatus updated:', newValue);
});

// Access data directly
console.log('Current coHostStatus:', coHostStatus.value);

connected

const connected: Ref<any>
co-guestconnectionstatus Currentalreadyco-guestuserofinformationlist
Type: Ref<any>

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { connected } = useCoHostState();

// Watch for data changes
watch(connected, (newValue) => {
  console.log('connected updated:', newValue);
});

// Access data directly
console.log('Current connected:', connected.value);

applicant

const applicant: Ref<any>
applyco-guestofhostinformation Currentapplyco-guestofhostuserinformation
Type: Ref<any>

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { applicant } = useCoHostState();

// Watch for data changes
watch(applicant, (newValue) => {
  console.log('applicant updated:', newValue);
});

// Access data directly
console.log('Current applicant:', applicant.value);

invitees

const invitees: Ref<any>
beeninviteofuserlist Currentalreadysendco-guestinviteofuserlist
Type: Ref<any>

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { invitees } = useCoHostState();

// Watch for data changes
watch(invitees, (newValue) => {
  console.log('invitees updated:', newValue);
});

// Access data directly
console.log('Current invitees:', invitees.value);

candidates

const candidates: Ref<any>
candidateuserlist Candidate users for co-guest invitationlist
Type: Ref<any>

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { candidates } = useCoHostState();

// Watch for data changes
watch(candidates, (newValue) => {
  console.log('candidates updated:', newValue);
});

// Access data directly
console.log('Current candidates:', candidates.value);

API Functions

requestHostConnection

function requestHostConnection(requestParams: { targetUserId: string; timeout?: number })
requesthostco-guest tospecifiedliveroominitiateco-guestrequest,canwithconfigurationlayouttemplateandsuperwhenwhenroom

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { requestHostConnection } = useCoHostState();

// Request host connection with 60 seconds timeout
await requestHostConnection({
  targetUserId: 'host_123',
  timeout: 60
});

cancelHostConnection

function cancelHostConnection(cancelParams: { targetUserId: string })
Cancelco-guestrequest Cancelalreadysendofco-guestrequest,frominvitelistinremove

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { cancelHostConnection } = useCoHostState();

// Cancel host connection request
await cancelHostConnection({
  targetUserId: 'host_123'
});

acceptHostConnection

function acceptHostConnection(acceptParams: { targetUserId: string })
acceptco-guestrequest acceptreceivetoofco-guestrequest,startco-guest

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { acceptHostConnection } = useCoHostState();

// Accept host connection request
await acceptHostConnection({
  targetUserId: 'host_123'
});

rejectHostConnection

function rejectHostConnection(rejectParams: { targetUserId: string })
rejectco-guestrequest rejectreceivetoofco-guestrequest

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { rejectHostConnection } = useCoHostState();

// Reject host connection request
await rejectHostConnection({
  targetUserId: 'host_123'
});

exitHostConnection

function exitHostConnection(exitParams: { targetUserId: string })
exithostco-guest exitwithtargethostofco-guest

Example

import { useCoHostState } from 'tuikit-atomicx-vue3';

const { exitHostConnection } = useCoHostState();

// Exit host connection
await exitHostConnection({
  targetUserId: 'host_123'
});

BattleState

⚔️ PKbattleManagement Module

Core Features:managementhostroomofPKbattlefunctions,includingbattleinvite、accept、reject、endetc.completeofPKstreamprocess,supportsreal-timescorestatistics。

Technical Features:supportsreal-timebattlestatussync、scorecompute、battleresultstatisticsetc.functions。AddedbattleScoreReactive Data,providescompleteofPKbattleexperience。

Business Value:asliveplatformprovidescompetitiveinteractionfunctions,enhancelivefunanduserparameterwithdegree。

Use Cases:hostPK、talentcompetition、gamebattle、interactioncompetitiveetc.entertainmentscenarios。

Reactive Data

currentBattleInfo

const currentBattleInfo: Ref<BattleInfo>
CurrentPKinformation storeCurrentin progressofPKofdetailedinformation
Type: Ref<BattleInfo>

Example

import { useBattleState } from 'tuikit-atomicx-vue3';

const { currentBattleInfo } = useBattleState();

// Watch for data changes
watch(currentBattleInfo, (newValue) => {
  console.log('currentBattleInfo updated:', newValue);
});

// Access data directly
console.log('Current currentBattleInfo:', currentBattleInfo.value);

battleUsers

const battleUsers: Ref<SeatUserInfo[]>
PKparameterwithuserlist storeCurrentPKinallparameterwithuserofinformation
Type: Ref<SeatUserInfo[]>

Example

import { useBattleState } from 'tuikit-atomicx-vue3';

const { battleUsers } = useBattleState();

// Watch for data changes
watch(battleUsers, (newValue) => {
  console.log('battleUsers updated:', newValue);
});

// Access data directly
console.log('Current battleUsers:', battleUsers.value);

battleScore

const battleScore: Ref<any>
PKbattleofreal-timescore CurrentPKbattleindualdirectionofreal-timescoredata
Type: Ref<any>

Example

import { useBattleState } from 'tuikit-atomicx-vue3';

const { battleScore } = useBattleState();

// Watch for data changes
watch(battleScore, (newValue) => {
  console.log('battleScore updated:', newValue);
});

// Access data directly
console.log('Current battleScore:', battleScore.value);

API Functions

requestBattle

function requestBattle(battleParams: { targetUserId: string; duration?: number })
requestPK totargethostinitiatePKrequest

Example

import { useBattleState } from 'tuikit-atomicx-vue3';

const { requestBattle } = useBattleState();

// Request battle with 5 minutes duration
await requestBattle({
  targetUserId: 'host_123',
  duration: 300
});

cancelBattleRequest

function cancelBattleRequest(cancelParams: { targetUserId: string })
CancelPKrequest CanceltotargethostofPKrequest

Example

import { useBattleState } from 'tuikit-atomicx-vue3';

const { cancelBattleRequest } = useBattleState();

// Cancel battle request
await cancelBattleRequest({
  targetUserId: 'host_123'
});

acceptBattle

function acceptBattle(acceptParams: { targetUserId: string })
acceptPK accepttargethostofPKrequest

Example

import { useBattleState } from 'tuikit-atomicx-vue3';

const { acceptBattle } = useBattleState();

// Accept battle request
await acceptBattle({
  targetUserId: 'host_123'
});

rejectBattle

function rejectBattle(rejectParams: { targetUserId: string })
rejectPK rejecttargethostofPKrequest

Example

import { useBattleState } from 'tuikit-atomicx-vue3';

const { rejectBattle } = useBattleState();

// Reject battle request
await rejectBattle({
  targetUserId: 'host_123'
});

exitBattle

function exitBattle(exitParams: { targetUserId: string })
exitPK exitwithtargethostofPK

Example

import { useBattleState } from 'tuikit-atomicx-vue3';

const { exitBattle } = useBattleState();

// Exit battle
await exitBattle({
  targetUserId: 'host_123'
});

BarrageState

💬 barragemessageManagement Module

Core Features:handlingliveroomwithinoftextmessage、custommessageetc.barragefunctions,supportsbarragesend、messagestatussyncetc.completebarragesystem,provideslocaltipfunctions。

Technical Features:supportshighandsendmessagehandling、real-timemessagesync、messagefilter、emojipackagesupportsetc.advancedfunctions。AddedsendTextMessage、sendCustomMessage、appendLocalTipAPI Functions。

Business Value:asliveplatformprovidescoreofinteractioncapability,enhanceuserparameterwithdegreeandliveatmosphere。

Use Cases:barrageinteraction、messagemanagement、emojipackage、chatroometc.socialinteractionscenarios。

Reactive Data

messageList

const messageList: Ref<Barrage[]>
barrageMessage list storeCurrent liveroomofallbarragemessage,includingtextmessageandcustommessage
Type: Ref<Barrage[]>

Example

import { useBarrageState } from 'tuikit-atomicx-vue3';

const { messageList } = useBarrageState();

// Watch for data changes
watch(messageList, (newValue) => {
  console.log('messageList updated:', newValue);
});

// Access data directly
console.log('Current messageList:', messageList.value);

API Functions

sendTextMessage

function sendTextMessage(messageParams: { text: string; receiverList?: string[] })
Send text barrage message toCurrent liveroomSend text barrage message,supportsextendinformation

Example

import { useBarrageState } from 'tuikit-atomicx-vue3';

const { sendTextMessage } = useBarrageState();

// Send text barrage message
await sendTextMessage({
  text: 'Great live stream!',
  receiverList: []
});

sendCustomMessage

function sendCustomMessage(customParams: { data: string; receiverList?: string[] })
Send custom barragemessage toCurrent liveroomSend custom barragemessage,used forsendspecialbusinessdatasuch asgift、likeetc.

Example

import { useBarrageState } from 'tuikit-atomicx-vue3';

const { sendCustomMessage } = useBarrageState();

// Send custom barrage message (e.g., gift)
await sendCustomMessage({
  data: JSON.stringify({ type: 'gift', giftId: 'rocket', count: 1 }),
  receiverList: []
});

appendLocalTip

function appendLocalTip(tipParams: { message: string; type?: string })
Append local tipmessage toMessage listinaddlocalgenerateoftipmessage,notwillsendtoservicesdevice

Example

import { useBarrageState } from 'tuikit-atomicx-vue3';

const { appendLocalTip } = useBarrageState();

// Append local tip message
await appendLocalTip({
  message: 'Welcome to the live room!',
  type: 'info'
});

MessageListState

📝 Message listManagement Module

Core Features:managementchatMessage list,supportsmessageloading、scrollcontrol、readreceipt、messagehighlightetc.completeofmessagedisplayfunctions。

Technical Features:supportsvirtualscroll、messageoptimize、real-timeupdateetc.highpropertycanmessagehandling。AddedactiveConversationID、messageList、hasMoreOlderMessageetc.Reactive Data。

Business Value:asinstantwhencommunicationprovidescoreofmessagedisplaycapability,ensuregoodofchatexperience。

Use Cases:instantwhencommunication、group chat、private chat、messagemanagementetc.communicationscenarios。

Reactive Data

activeConversationID

const activeConversationID: Ref<any>
Currently active conversation ID Currentin progressofchatconversationidentifier
Type: Ref<any>

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { activeConversationID } = useMessageListState();

// Watch for data changes
watch(activeConversationID, (newValue) => {
  console.log('activeConversationID updated:', newValue);
});

// Access data directly
console.log('Current activeConversationID:', activeConversationID.value);

messageList

const messageList: Ref<any>
Message listdata Active conversationofMessage list
Type: Ref<any>

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { messageList } = useMessageListState();

// Watch for data changes
watch(messageList, (newValue) => {
  console.log('messageList updated:', newValue);
});

// Access data directly
console.log('Current messageList:', messageList.value);

hasMoreOlderMessage

const hasMoreOlderMessage: Ref<any>
Has more older message identifierwhetheralsohasmoreearlyofhistorymessagecanwithloading
Type: Ref<any>

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { hasMoreOlderMessage } = useMessageListState();

// Watch for data changes
watch(hasMoreOlderMessage, (newValue) => {
  console.log('hasMoreOlderMessage updated:', newValue);
});

// Access data directly
console.log('Current hasMoreOlderMessage:', hasMoreOlderMessage.value);

hasMoreNewerMessage

const hasMoreNewerMessage: Ref<any>
Has more newer message identifierwhetheralsohasupdateofmessagecanwithloading
Type: Ref<any>

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { hasMoreNewerMessage } = useMessageListState();

// Watch for data changes
watch(hasMoreNewerMessage, (newValue) => {
  console.log('hasMoreNewerMessage updated:', newValue);
});

// Access data directly
console.log('Current hasMoreNewerMessage:', hasMoreNewerMessage.value);

enableReadReceipt

const enableReadReceipt: Ref<any>
whetherEnable read receipt identifierActive conversationwhetherturn onmessagereadreceiptfunctions
Type: Ref<any>

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { enableReadReceipt } = useMessageListState();

// Watch for data changes
watch(enableReadReceipt, (newValue) => {
  console.log('enableReadReceipt updated:', newValue);
});

// Access data directly
console.log('Current enableReadReceipt:', enableReadReceipt.value);

isDisableScroll

const isDisableScroll: Ref<any>
whetherIs disable scroll identifierMessage listwhetherdisableautomaticscroll
Type: Ref<any>

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { isDisableScroll } = useMessageListState();

// Watch for data changes
watch(isDisableScroll, (newValue) => {
  console.log('isDisableScroll updated:', newValue);
});

// Access data directly
console.log('Current isDisableScroll:', isDisableScroll.value);

recalledMessageIDSet

const recalledMessageIDSet: Ref<any>
alreadyRecall messageofIDset storealreadybeenrecallofmessageIDset
Type: Ref<any>

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { recalledMessageIDSet } = useMessageListState();

// Watch for data changes
watch(recalledMessageIDSet, (newValue) => {
  console.log('recalledMessageIDSet updated:', newValue);
});

// Access data directly
console.log('Current recalledMessageIDSet:', recalledMessageIDSet.value);

highlightMessageIDSet

const highlightMessageIDSet: Ref<any>
Highlight messageofIDset Set of message IDs to highlight
Type: Ref<any>

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { highlightMessageIDSet } = useMessageListState();

// Watch for data changes
watch(highlightMessageIDSet, (newValue) => {
  console.log('highlightMessageIDSet updated:', newValue);
});

// Access data directly
console.log('Current highlightMessageIDSet:', highlightMessageIDSet.value);

API Functions

setEnableReadReceipt

function setEnableReadReceipt(receiptConfig: { enabled: boolean })
Setreadreceipt turn onorturn offmessagereadreceiptfunctions

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { setEnableReadReceipt } = useMessageListState();

// Enable read receipt
await setEnableReadReceipt({
  enabled: true
});

setIsDisableScroll

function setIsDisableScroll(scrollConfig: { disabled: boolean })
Setscrolldisable controlMessage listofscrollrowas

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { setIsDisableScroll } = useMessageListState();

// Disable auto scroll
await setIsDisableScroll({
  disabled: true
});

highlightMessage

function highlightMessage(highlightParams: { messageId: string; duration?: number })
Highlight message Highlight the specified message

Example

import { useMessageListState } from 'tuikit-atomicx-vue3';

const { highlightMessage } = useMessageListState();

// Highlight a specific message for 3 seconds
await highlightMessage({
  messageId: 'msg_123456',
  duration: 3000
});

MessageInputState

✏️ messageinputManagement Module

Core Features:managementmessageinputboxofstatusandrowas,supportstextinput、emojipackage、@functions、inputstatustipetc.completeofinputexperience。

Technical Features:supportsrichtextedit、inputstatussync、draftsaveetc.functions。AddedinputRawValue、isPeerTypingReactive Data。

Business Value:asuserprovidesconvenientofmessageinputexperience,enhancecommunicationefficiency。

Use Cases:messageedit、emojiinput、filesend、speechinputetc.inputscenarios。

Reactive Data

inputRawValue

const inputRawValue: Ref<any>
inputboxofrawtextcontent messageinputboxinofrawtextcontent
Type: Ref<any>

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { inputRawValue } = useMessageInputState();

// Watch for data changes
watch(inputRawValue, (newValue) => {
  console.log('inputRawValue updated:', newValue);
});

// Access data directly
console.log('Current inputRawValue:', inputRawValue.value);

isPeerTyping

const isPeerTyping: Ref<any>
Whether peer is typing identifierWhether peer user is typing a message
Type: Ref<any>

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { isPeerTyping } = useMessageInputState();

// Watch for data changes
watch(isPeerTyping, (newValue) => {
  console.log('isPeerTyping updated:', newValue);
});

// Access data directly
console.log('Current isPeerTyping:', isPeerTyping.value);

API Functions

updateRawValue

function updateRawValue(valueParams: { value: string })
Update raw value updateinputboxofrawtextcontent

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { updateRawValue } = useMessageInputState();

// Update input raw value
await updateRawValue({
  value: 'Hello, world!'
});

setEditorInstance

function setEditorInstance(editorParams: { editor: any })
Set editor instance Setrichtexteditorofinstanceobject

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { setEditorInstance } = useMessageInputState();

// Set editor instance
await setEditorInstance({
  editor: editorRef
});

setContent

function setContent(contentParams: { content: string })
Set content Seteditorofcontent

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { setContent } = useMessageInputState();

// Set editor content
await setContent({
  content: 'New message content'
});

insertContent

function insertContent(insertParams: { content: string; position?: number })
Insert content inspecifiedpositionplaceInsert content

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { insertContent } = useMessageInputState();

// Insert content at cursor position
await insertContent({
  content: '@user ',
  position: 0
});

focusEditor

function focusEditor()
Focus editor makemessageinputeditorobtainfocus

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { focusEditor } = useMessageInputState();

// Focus editor
focusEditor();

blurEditor

function blurEditor()
Blur editor makemessageinputeditorlosefocus

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { blurEditor } = useMessageInputState();

// Blur editor
blurEditor();

sendMessage

function sendMessage(sendParams: { content: string; type?: string })
Send message sendinputboxinofmessagecontent

Example

import { useMessageInputState } from 'tuikit-atomicx-vue3';

const { sendMessage } = useMessageInputState();

// Send a text message
await sendMessage({
  content: 'Hello everyone!',
  type: 'text'
});

MessageActionState

🔧 Message Action Management Module

Core Features:managementmessageofeachtypesaction,includingforward、reference、copy、delete、recalletc.completeofmessageactionfunctions。

Technical Features:supportsbatchaction、actionstatusmanagement、permissioncontroletc.functions。AddedforwardMessageIDList、isForwardMessageSelectionDoneetc.Reactive Data。

Business Value:asuserprovidesrichofmessageactioncapability,enhanceuseexperience。

Use Cases:messageforward、messagereference、messagemanagement、batchactionetc.scenarios。

Reactive Data

forwardMessageIDList

const forwardMessageIDList: Ref<any>
needforwardofmessageIDlist selectedneedforwardofmessageIDlist
Type: Ref<any>

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { forwardMessageIDList } = useMessageActionState();

// Watch for data changes
watch(forwardMessageIDList, (newValue) => {
  console.log('forwardMessageIDList updated:', newValue);
});

// Access data directly
console.log('Current forwardMessageIDList:', forwardMessageIDList.value);

isForwardMessageSelectionDone

const isForwardMessageSelectionDone: Ref<any>
messageforwardselectionwhetherdone identifiermessageforwardtargetselectionwhetheralreadydone
Type: Ref<any>

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { isForwardMessageSelectionDone } = useMessageActionState();

// Watch for data changes
watch(isForwardMessageSelectionDone, (newValue) => {
  console.log('isForwardMessageSelectionDone updated:', newValue);
});

// Access data directly
console.log('Current isForwardMessageSelectionDone:', isForwardMessageSelectionDone.value);

forwardConversationIDList

const forwardConversationIDList: Ref<any>
Forward target conversation ID list messageforwardoftargetconversationIDlist
Type: Ref<any>

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { forwardConversationIDList } = useMessageActionState();

// Watch for data changes
watch(forwardConversationIDList, (newValue) => {
  console.log('forwardConversationIDList updated:', newValue);
});

// Access data directly
console.log('Current forwardConversationIDList:', forwardConversationIDList.value);

quotedMessage

const quotedMessage: Ref<any>
beenQuoted messageinformation Currentbeenreferencereplyofmessageinformation
Type: Ref<any>

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { quotedMessage } = useMessageActionState();

// Watch for data changes
watch(quotedMessage, (newValue) => {
  console.log('quotedMessage updated:', newValue);
});

// Access data directly
console.log('Current quotedMessage:', quotedMessage.value);

API Functions

forwardMessage

function forwardMessage(forwardParams: { messageIds: string[]; conversationIds: string[] })
Forward message Forward selected messages to specified conversations

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { forwardMessage } = useMessageActionState();

// Forward messages to conversations
await forwardMessage({
  messageIds: ['msg_001', 'msg_002'],
  conversationIds: ['C2C_user123', 'GROUP_group456']
});

setForwardMessageIDList

function setForwardMessageIDList(messageParams: { messageIds: string[] })
SetforwardMessage list Set the list of message IDs to forward

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { setForwardMessageIDList } = useMessageActionState();

// Set forward message ID list
await setForwardMessageIDList({
  messageIds: ['msg_001', 'msg_002', 'msg_003']
});

setIsForwardMessageSelectionDone

function setIsForwardMessageSelectionDone(selectionParams: { done: boolean })
Setforwardselectiondone markmessageselectionwhetherdone

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { setIsForwardMessageSelectionDone } = useMessageActionState();

// Mark forward message selection as done
await setIsForwardMessageSelectionDone({
  done: true
});

setForwardConversationIDList

function setForwardConversationIDList(conversationParams: { conversationIds: string[] })
SetforwardConversation list Set the list of conversation IDs to forward to

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { setForwardConversationIDList } = useMessageActionState();

// Set forward conversation ID list
await setForwardConversationIDList({
  conversationIds: ['C2C_user123', 'GROUP_group456']
});

quoteMessage

function quoteMessage(quoteParams: { messageId: string })
Quote message Quote the specified message for reply

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { quoteMessage } = useMessageActionState();

// Quote a message for reply
await quoteMessage({
  messageId: 'msg_123456'
});

clearQuotedMessage

function clearQuotedMessage()
clearQuote message clearCurrently quoted message,Cancelmessagereferencestatus

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { clearQuotedMessage } = useMessageActionState();

// clearQuote message
clearQuotedMessage();

copyTextMessage

function copyTextMessage(copyParams: { messageId: string })
Copy text message copyspecifiedmessageoftextcontent

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { copyTextMessage } = useMessageActionState();

// Copy text message content
await copyTextMessage({
  messageId: 'msg_123456'
});

deleteMessage

function deleteMessage(deleteParams: { messageId: string })
Delete message Delete the specified message

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { deleteMessage } = useMessageActionState();

// Delete a message
await deleteMessage({
  messageId: 'msg_123456'
});

recallMessage

function recallMessage(recallParams: { messageId: string })
Recall message recallspecifiedofmessage

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { recallMessage } = useMessageActionState();

// Recall a message
await recallMessage({
  messageId: 'msg_123456'
});

resetMessageActionState

function resetMessageActionState()
Reset message action state resetCurrentofmessageactionstatus,clearselected、referenceetc.temporarywhenstatus

Example

import { useMessageActionState } from 'tuikit-atomicx-vue3';

const { resetMessageActionState } = useMessageActionState();

// resetallmessageactionstatus
resetMessageActionState();

ConversationListState

💼 Conversation listManagement Module

Core Features:managementuserofConversation list,supportsconversationsorting、unreadstatistics、conversationactionetc.completeofconversationmanagementfunctions。

Technical Features:supportsreal-timeconversationupdate、intelligentcansorting、Net statusmonitoringetc.functions。AddedconversationList、activeConversation、totalUnRead、netStatusReactive Data。

Business Value:asuserprovidesclearofconversationmanagementinterfaceinterface,enhancecommunicationefficiency。

Use Cases:conversationmanagement、contactlist、group management、messageinheartetc.scenarios。

Reactive Data

conversationList

const conversationList: Ref<any>
Conversation listdata List of all conversationsdata
Type: Ref<any>

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { conversationList } = useConversationListState();

// Watch for data changes
watch(conversationList, (newValue) => {
  console.log('conversationList updated:', newValue);
});

// Access data directly
console.log('Current conversationList:', conversationList.value);

activeConversation

const activeConversation: Ref<any>
Currentactiveofconversation Currentselectedandin progressofconversation
Type: Ref<any>

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { activeConversation } = useConversationListState();

// Watch for data changes
watch(activeConversation, (newValue) => {
  console.log('activeConversation updated:', newValue);
});

// Access data directly
console.log('Current activeConversation:', activeConversation.value);

totalUnRead

const totalUnRead: Ref<any>
unreadmessagetotal Total unread message count of all conversationsstatistics
Type: Ref<any>

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { totalUnRead } = useConversationListState();

// Watch for data changes
watch(totalUnRead, (newValue) => {
  console.log('totalUnRead updated:', newValue);
});

// Access data directly
console.log('Current totalUnRead:', totalUnRead.value);

netStatus

const netStatus: Ref<any>
Network connection status Currentnetworkconnectionofstatusinformation
Type: Ref<any>

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { netStatus } = useConversationListState();

// Watch for data changes
watch(netStatus, (newValue) => {
  console.log('netStatus updated:', newValue);
});

// Access data directly
console.log('Current netStatus:', netStatus.value);

API Functions

markConversationUnread

function markConversationUnread(unreadParams: { conversationId: string; unreadCount: number })
Mark conversation unread Setconversationofunreadmessagecount

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { markConversationUnread } = useConversationListState();

// Mark conversation as unread
await markConversationUnread({
  conversationId: 'C2C_user123',
  unreadCount: 1
});

setActiveConversation

function setActiveConversation(activeParams: { conversationId: string })
Setactiveconversation switchtospecifiedofconversation

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { setActiveConversation } = useConversationListState();

// Set active conversation
await setActiveConversation({
  conversationId: 'C2C_user123'
});

pinConversation

function pinConversation(pinParams: { conversationId: string; isPinned: boolean })
Pin conversation Setconversationofpinstatus

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { pinConversation } = useConversationListState();

// Pin conversation to top
await pinConversation({
  conversationId: 'C2C_user123',
  isPinned: true
});

deleteConversation

function deleteConversation(deleteParams: { conversationId: string })
Delete conversation Delete the specified conversation

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { deleteConversation } = useConversationListState();

// Delete a conversation
await deleteConversation({
  conversationId: 'C2C_user123'
});

muteConversation

function muteConversation(muteParams: { conversationId: string; isMuted: boolean })
muteconversation Setconversationofmutestatus

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { muteConversation } = useConversationListState();

// Mute conversation notifications
await muteConversation({
  conversationId: 'C2C_user123',
  isMuted: true
});

setConversationDraft

function setConversationDraft(draftParams: { conversationId: string; draft: string })
Set conversation draft saveconversationofdraftcontent

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { setConversationDraft } = useConversationListState();

// Set conversation draft
await setConversationDraft({
  conversationId: 'C2C_user123',
  draft: 'Draft message content...'
});

createC2CConversation

function createC2CConversation(c2cParams: { userId: string })
Create C2C conversation createwithspecifieduserofC2C chatconversation

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { createC2CConversation } = useConversationListState();

// Create C2C (one-to-one) conversation
await createC2CConversation({
  userId: 'user_123'
});

createGroupConversation

function createGroupConversation(groupParams: { groupId: string })
Create group chat conversation createspecifiedgroupofgroup chatconversation

Example

import { useConversationListState } from 'tuikit-atomicx-vue3';

const { createGroupConversation } = useConversationListState();

// Create group conversation
await createGroupConversation({
  groupId: 'group_456'
});

ContactListState

👥 contactManagement Module

Core Features:managementuserofcontactlist,includingfriendmanagement、group management、Black listmanagementetc.completeofcontactfunctions。

Technical Features:supportscontactgroup、friendapplyhandling、groupapplymanagementetc.functions。AddedfriendList、groupList、blackListetc.Reactive DataandcompleteofcontactactionAPI。

Business Value:asuserprovidescompleteofsocialrelationshipmanagementcapability,buildsocialnetwork。

Use Cases:friendmanagement、group management、contactSearch、socialnetworketc.scenarios。

Reactive Data

friendList

const friendList: Ref<any>
Friend list
Type: Ref<any>

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { friendList } = useContactListState();

// Watch for data changes
watch(friendList, (newValue) => {
  console.log('friendList updated:', newValue);
});

// Access data directly
console.log('Current friendList:', friendList.value);

groupList

const groupList: Ref<any>
Group list
Type: Ref<any>

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { groupList } = useContactListState();

// Watch for data changes
watch(groupList, (newValue) => {
  console.log('groupList updated:', newValue);
});

// Access data directly
console.log('Current groupList:', groupList.value);

blackList

const blackList: Ref<any>
Black listlist
Type: Ref<any>

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { blackList } = useContactListState();

// Watch for data changes
watch(blackList, (newValue) => {
  console.log('blackList updated:', newValue);
});

// Access data directly
console.log('Current blackList:', blackList.value);

friendApplicationUnreadCount

const friendApplicationUnreadCount: Ref<any>
Friend application unread count
Type: Ref<any>

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { friendApplicationUnreadCount } = useContactListState();

// Watch for data changes
watch(friendApplicationUnreadCount, (newValue) => {
  console.log('friendApplicationUnreadCount updated:', newValue);
});

// Access data directly
console.log('Current friendApplicationUnreadCount:', friendApplicationUnreadCount.value);

friendGroupList

const friendGroupList: Ref<any>
Friend group list
Type: Ref<any>

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { friendGroupList } = useContactListState();

// Watch for data changes
watch(friendGroupList, (newValue) => {
  console.log('friendGroupList updated:', newValue);
});

// Access data directly
console.log('Current friendGroupList:', friendGroupList.value);

friendApplicationList

const friendApplicationList: Ref<any>
Friend application list
Type: Ref<any>

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { friendApplicationList } = useContactListState();

// Watch for data changes
watch(friendApplicationList, (newValue) => {
  console.log('friendApplicationList updated:', newValue);
});

// Access data directly
console.log('Current friendApplicationList:', friendApplicationList.value);

groupApplicationList

const groupApplicationList: Ref<any>
groupapplylist
Type: Ref<any>

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { groupApplicationList } = useContactListState();

// Watch for data changes
watch(groupApplicationList, (newValue) => {
  console.log('groupApplicationList updated:', newValue);
});

// Access data directly
console.log('Current groupApplicationList:', groupApplicationList.value);

API Functions

setGroupApplicationList

function setGroupApplicationList(listParams: { applicationList: any[] })
SetGroup application list updateGroup application listdata

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { setGroupApplicationList } = useContactListState();

// Set group application list
await setGroupApplicationList({
  applicationList: []
});

setFriendList

function setFriendList(listParams: { friendList: any[] })
SetFriend list updateFriend listdata

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { setFriendList } = useContactListState();

// Set friend list
await setFriendList({
  friendList: []
});

setGroupList

function setGroupList(listParams: { groupList: any[] })
SetGroup list updateGroup listdata

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { setGroupList } = useContactListState();

// Set group list
await setGroupList({
  groupList: []
});

setBlackList

function setBlackList(listParams: { blackList: any[] })
SetBlack listlist updateBlack listlistdata

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { setBlackList } = useContactListState();

// Set black list
await setBlackList({
  blackList: []
});

setFriendApplicationUnreadCount

function setFriendApplicationUnreadCount(countParams: { count: number })
SetFriend application unread count updatefriendapplyofunreadcount

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { setFriendApplicationUnreadCount } = useContactListState();

// Set friend application unread count
await setFriendApplicationUnreadCount({
  count: 5
});

setFriendGroupList

function setFriendGroupList(listParams: { groupList: any[] })
SetFriend group list updateFriend group listdata

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { setFriendGroupList } = useContactListState();

// Set friend group list
await setFriendGroupList({
  groupList: []
});

setFriendApplicationList

function setFriendApplicationList(listParams: { applicationList: any[] })
SetFriend application list updateFriend application listdata

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { setFriendApplicationList } = useContactListState();

// Set friend application list
await setFriendApplicationList({
  applicationList: []
});

initContactListWatcher

function initContactListWatcher(watcherParams?: { autoUpdate?: boolean })
Initializecontactwatcherdevice Initializecontactlistofdatawatcher

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { initContactListWatcher } = useContactListState();

// Initialize contact list watcher
await initContactListWatcher({
  autoUpdate: true
});

addFriend

function addFriend(friendParams: { userId: string; remark?: string; addSource?: string })
Add friend tospecifiedusersendfriendapply

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { addFriend } = useContactListState();

// Add friend with remark
await addFriend({
  userId: 'user_123',
  remark: 'My Friend',
  addSource: 'search'
});

markFriendApplicationAsRead

function markFriendApplicationAsRead(readParams: { applicationList: string[] })
markfriendapplyasread willspecifiedoffriendapplymarkasreadstatus

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { markFriendApplicationAsRead } = useContactListState();

// Mark friend applications as read
await markFriendApplicationAsRead({
  applicationList: ['app_001', 'app_002']
});

acceptFriendApplication

function acceptFriendApplication(acceptParams: { userId: string; remark?: string })
Accept friend application acceptspecifieduseroffriendapply

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { acceptFriendApplication } = useContactListState();

// Accept friend application
await acceptFriendApplication({
  userId: 'user_123',
  remark: 'New Friend'
});

refuseFriendApplication

function refuseFriendApplication(refuseParams: { userId: string })
Refuse friend application rejectspecifieduseroffriendapply

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { refuseFriendApplication } = useContactListState();

// Refuse friend application
await refuseFriendApplication({
  userId: 'user_123'
});

addToBlacklist

function addToBlacklist(blacklistParams: { userId: string })
addtoBlack list willspecifieduseraddtoBlack list

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { addToBlacklist } = useContactListState();

// Add user to blacklist
await addToBlacklist({
  userId: 'user_123'
});

removeFromBlacklist

function removeFromBlacklist(removeParams: { userId: string })
fromBlack listremove willspecifieduserfromBlack listinremove

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { removeFromBlacklist } = useContactListState();

// Remove user from blacklist
await removeFromBlacklist({
  userId: 'user_123'
});

deleteFriend

function deleteFriend(deleteParams: { userId: string })
Delete friend Delete the specified friendrelationship

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { deleteFriend } = useContactListState();

// Delete friend
await deleteFriend({
  userId: 'user_123'
});

setFriendRemark

function setFriendRemark(remarkParams: { userId: string; remark: string })
Set friend remark asspecifiedfriendSetRemarknamename

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { setFriendRemark } = useContactListState();

// Set friend remark
await setFriendRemark({
  userId: 'user_123',
  remark: 'Best Friend'
});

createFriendGroup

function createFriendGroup(groupParams: { groupName: string; userList?: string[] })
Create friend group Create a new friend group

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { createFriendGroup } = useContactListState();

// Create friend group
await createFriendGroup({
  groupName: 'Close Friends',
  userList: ['user_001', 'user_002']
});

deleteFriendGroup

function deleteFriendGroup(deleteParams: { groupName: string })
Delete friendgroup Delete the specified friendgroup

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { deleteFriendGroup } = useContactListState();

// Delete friend group
await deleteFriendGroup({
  groupName: 'Old Group'
});

addToFriendGroup

function addToFriendGroup(addParams: { groupName: string; userList: string[] })
Add to friend group Add friend to the specified group

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { addToFriendGroup } = useContactListState();

// Add friends to group
await addToFriendGroup({
  groupName: 'Close Friends',
  userList: ['user_003', 'user_004']
});

removeFromFriendGroup

function removeFromFriendGroup(removeParams: { groupName: string; userList: string[] })
Remove from friend group willfriendfromspecifiedgroupinremove

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { removeFromFriendGroup } = useContactListState();

// Remove friends from group
await removeFromFriendGroup({
  groupName: 'Close Friends',
  userList: ['user_003']
});

renameFriendGroup

function renameFriendGroup(renameParams: { oldGroupName: string; newGroupName: string })
Rename friend group modifyfriendgroupofnamename

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { renameFriendGroup } = useContactListState();

// Rename friend group
await renameFriendGroup({
  oldGroupName: 'Close Friends',
  newGroupName: 'Best Friends'
});

joinGroup

function joinGroup(joinParams: { groupId: string; message?: string })
Join group Apply to join the specified group

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { joinGroup } = useContactListState();

// Join a group
await joinGroup({
  groupId: 'group_123',
  message: 'I want to join this group'
});

acceptGroupApplication

function acceptGroupApplication(acceptParams: { groupId: string; userId: string })
Accept group application Accept user's group join application

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { acceptGroupApplication } = useContactListState();

// Accept group application
await acceptGroupApplication({
  groupId: 'group_123',
  userId: 'user_456'
});

refuseGroupApplication

function refuseGroupApplication(refuseParams: { groupId: string; userId: string; reason?: string })
Refuse group application Refuse user's group join application

Example

import { useContactListState } from 'tuikit-atomicx-vue3';

const { refuseGroupApplication } = useContactListState();

// Refuse group application
await refuseGroupApplication({
  groupId: 'group_123',
  userId: 'user_456',
  reason: 'Group is full'
});

C2CSettingState

👤 C2C Chat Setting Management Module

Core Features:managementC2C chatconversationofeachtypesSet,includinguserinformation、chatSet、permissioncontroletc.functions。

Technical Features:supportsreal-timeSetsync、permissionmanagement、personalizationconfigurationetc.functions。updateReactive DataasuserID、avatar、signatureetc.standardizationfield。

Business Value:asuserprovidespersonalizationofC2C chatexperience,enhancecommunicationquality。

Use Cases:C2C chatSet、userinformationmanagement、chatpermissioncontroletc.scenarios。

Reactive Data

currentConversationRef

const currentConversationRef: Ref<IConversationModel | undefined>
Active conversationreference storeCurrentC2Cconversationofmodelobject
Type: Ref<IConversationModel | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { currentConversationRef } = useC2CSettingState();

// Watch for data changes
watch(currentConversationRef, (newValue) => {
  console.log('currentConversationRef updated:', newValue);
});

// Access data directly
console.log('Current currentConversationRef:', currentConversationRef.value);

userIDRef

const userIDRef: Ref<string | undefined>
User ID CurrentC2CconversationpeerofUser ID
Type: Ref<string | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { userIDRef } = useC2CSettingState();

// Watch for data changes
watch(userIDRef, (newValue) => {
  console.log('userIDRef updated:', newValue);
});

// Access data directly
console.log('Current userIDRef:', userIDRef.value);

nickRef

const nickRef: Ref<string | undefined>
usernickname CurrentC2Cconversationpeerofnickname
Type: Ref<string | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { nickRef } = useC2CSettingState();

// Watch for data changes
watch(nickRef, (newValue) => {
  console.log('nickRef updated:', newValue);
});

// Access data directly
console.log('Current nickRef:', nickRef.value);

avatarRef

const avatarRef: Ref<string | undefined>
userAvatar CurrentC2CconversationpeerofAvatarURL
Type: Ref<string | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { avatarRef } = useC2CSettingState();

// Watch for data changes
watch(avatarRef, (newValue) => {
  console.log('avatarRef updated:', newValue);
});

// Access data directly
console.log('Current avatarRef:', avatarRef.value);

signatureRef

const signatureRef: Ref<string | undefined>
userpersonalSignature CurrentC2CconversationpeerofpersonalSignature
Type: Ref<string | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { signatureRef } = useC2CSettingState();

// Watch for data changes
watch(signatureRef, (newValue) => {
  console.log('signatureRef updated:', newValue);
});

// Access data directly
console.log('Current signatureRef:', signatureRef.value);

remarkRef

const remarkRef: Ref<string | undefined>
friendRemarkname CurrentuserforC2CconversationpeerSetofRemarkname
Type: Ref<string | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { remarkRef } = useC2CSettingState();

// Watch for data changes
watch(remarkRef, (newValue) => {
  console.log('remarkRef updated:', newValue);
});

// Access data directly
console.log('Current remarkRef:', remarkRef.value);

isMutedRef

const isMutedRef: Ref<boolean | undefined>
conversationmutestatus CurrentC2Cconversationwhetherin state ofmutestatus
Type: Ref<boolean | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { isMutedRef } = useC2CSettingState();

// Watch for data changes
watch(isMutedRef, (newValue) => {
  console.log('isMutedRef updated:', newValue);
});

// Access data directly
console.log('Current isMutedRef:', isMutedRef.value);

isPinnedRef

const isPinnedRef: Ref<boolean | undefined>
conversationpinstatus CurrentC2Cconversationwhetherin state ofpinstatus
Type: Ref<boolean | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { isPinnedRef } = useC2CSettingState();

// Watch for data changes
watch(isPinnedRef, (newValue) => {
  console.log('isPinnedRef updated:', newValue);
});

// Access data directly
console.log('Current isPinnedRef:', isPinnedRef.value);

isContactRef

const isContactRef: Ref<boolean | undefined>
friendrelationshipstatus CurrentuserwithC2CconversationWhether the peer is a friendrelationship
Type: Ref<boolean | undefined>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { isContactRef } = useC2CSettingState();

// Watch for data changes
watch(isContactRef, (newValue) => {
  console.log('isContactRef updated:', newValue);
});

// Access data directly
console.log('Current isContactRef:', isContactRef.value);

userID

const userID: Ref<any>
User ID
Type: Ref<any>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { userID } = useC2CSettingState();

// Watch for data changes
watch(userID, (newValue) => {
  console.log('userID updated:', newValue);
});

// Access data directly
console.log('Current userID:', userID.value);

avatar

const avatar: Ref<any>
userAvatarURL
Type: Ref<any>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { avatar } = useC2CSettingState();

// Watch for data changes
watch(avatar, (newValue) => {
  console.log('avatar updated:', newValue);
});

// Access data directly
console.log('Current avatar:', avatar.value);

signature

const signature: Ref<any>
userpersonalSignature
Type: Ref<any>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { signature } = useC2CSettingState();

// Watch for data changes
watch(signature, (newValue) => {
  console.log('signature updated:', newValue);
});

// Access data directly
console.log('Current signature:', signature.value);

remark

const remark: Ref<any>
userRemarkname
Type: Ref<any>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { remark } = useC2CSettingState();

// Watch for data changes
watch(remark, (newValue) => {
  console.log('remark updated:', newValue);
});

// Access data directly
console.log('Current remark:', remark.value);

isMuted

const isMuted: Ref<any>
whetheralreadymute
Type: Ref<any>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { isMuted } = useC2CSettingState();

// Watch for data changes
watch(isMuted, (newValue) => {
  console.log('isMuted updated:', newValue);
});

// Access data directly
console.log('Current isMuted:', isMuted.value);

isPinned

const isPinned: Ref<any>
whetheralreadypin
Type: Ref<any>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { isPinned } = useC2CSettingState();

// Watch for data changes
watch(isPinned, (newValue) => {
  console.log('isPinned updated:', newValue);
});

// Access data directly
console.log('Current isPinned:', isPinned.value);

isContact

const isContact: Ref<any>
Is contact
Type: Ref<any>

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { isContact } = useC2CSettingState();

// Watch for data changes
watch(isContact, (newValue) => {
  console.log('isContact updated:', newValue);
});

// Access data directly
console.log('Current isContact:', isContact.value);

API Functions

setChatPinned

function setChatPinned(pinParams: { conversationId: string; isPinned: boolean })
Setchatpin SetC2C chatconversationofpinstatus

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { setChatPinned } = useC2CSettingState();

// Pin chat to top
await setChatPinned({
  conversationId: 'C2C_user123',
  isPinned: true
});

setChatMuted

function setChatMuted(muteParams: { conversationId: string; isMuted: boolean })
Setchatmute SetC2C chatconversationofmutestatus

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { setChatMuted } = useC2CSettingState();

// Mute chat notifications
await setChatMuted({
  conversationId: 'C2C_user123',
  isMuted: true
});

setUserRemark

function setUserRemark(remarkParams: { userId: string; remark: string })
SetuserRemark asspecifieduserSetRemarknamename

Example

import { useC2CSettingState } from 'tuikit-atomicx-vue3';

const { setUserRemark } = useC2CSettingState();

// Set user remark
await setUserRemark({
  userId: 'user_123',
  remark: 'My Best Friend'
});

GroupSettingState

👥 Group Chat Setting Management Module

Core Features:managementgroup chatofeachtypesSetandaction,includinggroupinformationmanagement、member management、permissioncontroletc.completeofgroupmanagementfunctions。

Technical Features:supportsgrouppermissionmanagement、memberaction、groupSetsyncetc.functions。AddedgroupID、groupType、groupNameetc.completeofgroupinformationReactive DataandmanagementAPI。

Business Value:asGroup ownerandmanagementmemberprovidescompleteofgroupmanagementcapability,dimensionprotectgrouporder。

Use Cases:groupmanagement、member management、permissioncontrol、groupSetetc.scenarios。

Reactive Data

groupID

const groupID: Ref<any>
Group ID
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { groupID } = useGroupSettingState();

// Watch for data changes
watch(groupID, (newValue) => {
  console.log('groupID updated:', newValue);
});

// Access data directly
console.log('Current groupID:', groupID.value);

groupType

const groupType: Ref<any>
Group type
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { groupType } = useGroupSettingState();

// Watch for data changes
watch(groupType, (newValue) => {
  console.log('groupType updated:', newValue);
});

// Access data directly
console.log('Current groupType:', groupType.value);

groupName

const groupName: Ref<any>
Group name
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { groupName } = useGroupSettingState();

// Watch for data changes
watch(groupName, (newValue) => {
  console.log('groupName updated:', newValue);
});

// Access data directly
console.log('Current groupName:', groupName.value);

avatar

const avatar: Ref<any>
userAvatarURL
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { avatar } = useGroupSettingState();

// Watch for data changes
watch(avatar, (newValue) => {
  console.log('avatar updated:', newValue);
});

// Access data directly
console.log('Current avatar:', avatar.value);

introduction

const introduction: Ref<any>
groupintroduction
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { introduction } = useGroupSettingState();

// Watch for data changes
watch(introduction, (newValue) => {
  console.log('introduction updated:', newValue);
});

// Access data directly
console.log('Current introduction:', introduction.value);

notification

const notification: Ref<any>
Group notification
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { notification } = useGroupSettingState();

// Watch for data changes
watch(notification, (newValue) => {
  console.log('notification updated:', newValue);
});

// Access data directly
console.log('Current notification:', notification.value);

isMuted

const isMuted: Ref<any>
whetheralreadymute
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { isMuted } = useGroupSettingState();

// Watch for data changes
watch(isMuted, (newValue) => {
  console.log('isMuted updated:', newValue);
});

// Access data directly
console.log('Current isMuted:', isMuted.value);

isPinned

const isPinned: Ref<any>
whetheralreadypin
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { isPinned } = useGroupSettingState();

// Watch for data changes
watch(isPinned, (newValue) => {
  console.log('isPinned updated:', newValue);
});

// Access data directly
console.log('Current isPinned:', isPinned.value);

groupOwner

const groupOwner: Ref<any>
Group ownerinformation
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { groupOwner } = useGroupSettingState();

// Watch for data changes
watch(groupOwner, (newValue) => {
  console.log('groupOwner updated:', newValue);
});

// Access data directly
console.log('Current groupOwner:', groupOwner.value);

adminMembers

const adminMembers: Ref<any>
Admin members
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { adminMembers } = useGroupSettingState();

// Watch for data changes
watch(adminMembers, (newValue) => {
  console.log('adminMembers updated:', newValue);
});

// Access data directly
console.log('Current adminMembers:', adminMembers.value);

allMembers

const allMembers: Ref<any>
allmemberlist
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { allMembers } = useGroupSettingState();

// Watch for data changes
watch(allMembers, (newValue) => {
  console.log('allMembers updated:', newValue);
});

// Access data directly
console.log('Current allMembers:', allMembers.value);

memberCount

const memberCount: Ref<any>
membertotal
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { memberCount } = useGroupSettingState();

// Watch for data changes
watch(memberCount, (newValue) => {
  console.log('memberCount updated:', newValue);
});

// Access data directly
console.log('Current memberCount:', memberCount.value);

maxMemberCount

const maxMemberCount: Ref<any>
Max member count
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { maxMemberCount } = useGroupSettingState();

// Watch for data changes
watch(maxMemberCount, (newValue) => {
  console.log('maxMemberCount updated:', newValue);
});

// Access data directly
console.log('Current maxMemberCount:', maxMemberCount.value);

currentUserID

const currentUserID: Ref<any>
CurrentUser ID
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { currentUserID } = useGroupSettingState();

// Watch for data changes
watch(currentUserID, (newValue) => {
  console.log('currentUserID updated:', newValue);
});

// Access data directly
console.log('Current currentUserID:', currentUserID.value);

currentUserRole

const currentUserRole: Ref<any>
Current user role
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { currentUserRole } = useGroupSettingState();

// Watch for data changes
watch(currentUserRole, (newValue) => {
  console.log('currentUserRole updated:', newValue);
});

// Access data directly
console.log('Current currentUserRole:', currentUserRole.value);

nameCard

const nameCard: Ref<any>
usernameclip
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { nameCard } = useGroupSettingState();

// Watch for data changes
watch(nameCard, (newValue) => {
  console.log('nameCard updated:', newValue);
});

// Access data directly
console.log('Current nameCard:', nameCard.value);

isMuteAllMembers

const isMuteAllMembers: Ref<any>
whethermuteallmember
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { isMuteAllMembers } = useGroupSettingState();

// Watch for data changes
watch(isMuteAllMembers, (newValue) => {
  console.log('isMuteAllMembers updated:', newValue);
});

// Access data directly
console.log('Current isMuteAllMembers:', isMuteAllMembers.value);

isInGroup

const isInGroup: Ref<any>
whetheringroupin
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { isInGroup } = useGroupSettingState();

// Watch for data changes
watch(isInGroup, (newValue) => {
  console.log('isInGroup updated:', newValue);
});

// Access data directly
console.log('Current isInGroup:', isInGroup.value);

inviteOption

const inviteOption: Ref<any>
Invite option
Type: Ref<any>

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { inviteOption } = useGroupSettingState();

// Watch for data changes
watch(inviteOption, (newValue) => {
  console.log('inviteOption updated:', newValue);
});

// Access data directly
console.log('Current inviteOption:', inviteOption.value);

API Functions

getGroupMemberList

function getGroupMemberList(memberParams: { groupId: string; filter?: number; nextSeq?: number })
Get group member list paginationGetgroupmemberinformation

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { getGroupMemberList } = useGroupSettingState();

// Get group member list
await getGroupMemberList({
  groupId: 'group_123',
  filter: 0,
  nextSeq: 0
});

updateGroupProfile

function updateGroupProfile(profileParams: { groupId: string; groupName?: string; avatar?: string; introduction?: string; notification?: string })
Update group profile updategroupofbasethisinformation

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { updateGroupProfile } = useGroupSettingState();

// Update group profile
await updateGroupProfile({
  groupId: 'group_123',
  groupName: 'New Group Name',
  avatar: 'https://example.com/avatar.png',
  introduction: 'Welcome to our group!',
  notification: 'Please follow the rules'
});

addGroupMember

function addGroupMember(addParams: { groupId: string; userList: string[] })
Add group member togroupaddnewmember

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { addGroupMember } = useGroupSettingState();

// Add group members
await addGroupMember({
  groupId: 'group_123',
  userList: ['user_001', 'user_002']
});

deleteGroupMember

function deleteGroupMember(deleteParams: { groupId: string; userList: string[]; reason?: string })
Delete group member fromgroupinremovespecifiedmember

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { deleteGroupMember } = useGroupSettingState();

// Delete group members
await deleteGroupMember({
  groupId: 'group_123',
  userList: ['user_001'],
  reason: 'Violated group rules'
});

changeGroupOwner

function changeGroupOwner(ownerParams: { groupId: string; newOwnerUserId: string })
convertallowGroup owner willGroup owneridentityconvertallowgivespecifiedmember

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { changeGroupOwner } = useGroupSettingState();

// Transfer group ownership
await changeGroupOwner({
  groupId: 'group_123',
  newOwnerUserId: 'user_456'
});

setGroupMemberRole

function setGroupMemberRole(roleParams: { groupId: string; userId: string; role: number })
Set group member role Set the role of group memberpermission

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { setGroupMemberRole } = useGroupSettingState();

// Set group member role (1: admin, 0: member)
await setGroupMemberRole({
  groupId: 'group_123',
  userId: 'user_456',
  role: 1
});

setGroupMemberNameCard

function setGroupMemberNameCard(nameCardParams: { groupId: string; userId: string; nameCard: string })
Set group member name card SetgroupmemberofName card

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { setGroupMemberNameCard } = useGroupSettingState();

// Set group member name card
await setGroupMemberNameCard({
  groupId: 'group_123',
  userId: 'user_456',
  nameCard: 'Team Leader'
});

setChatPinned

function setChatPinned(pinParams: { conversationId: string; isPinned: boolean })
Setchatpin SetC2C chatconversationofpinstatus

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { setChatPinned } = useGroupSettingState();

// Pin chat to top
await setChatPinned({
  conversationId: 'C2C_user123',
  isPinned: true
});

setChatMuted

function setChatMuted(muteParams: { conversationId: string; isMuted: boolean })
Setchatmute SetC2C chatconversationofmutestatus

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { setChatMuted } = useGroupSettingState();

// Mute chat notifications
await setChatMuted({
  conversationId: 'C2C_user123',
  isMuted: true
});

setGroupMemberMuteTime

function setGroupMemberMuteTime(muteParams: { groupId: string; userId: string; muteTime: number })
Set group member mute time Setgroupmemberofmutewhenroom

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { setGroupMemberMuteTime } = useGroupSettingState();

// Mute group member for 10 minutes
await setGroupMemberMuteTime({
  groupId: 'group_123',
  userId: 'user_456',
  muteTime: 600
});

setMuteAllMember

function setMuteAllMember(muteAllParams: { groupId: string; isMuted: boolean })
Set mute all member Setgroupofall membersmutestatus

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { setMuteAllMember } = useGroupSettingState();

// Mute all group members
await setMuteAllMember({
  groupId: 'group_123',
  isMuted: true
});

dismissGroup

function dismissGroup(dismissParams: { groupId: string })
Dismiss group dismissspecifiedofgroup

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { dismissGroup } = useGroupSettingState();

// Dismiss group
await dismissGroup({
  groupId: 'group_123'
});

quitGroup

function quitGroup(quitParams: { groupId: string })
Quit group exitspecifiedofgroup

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { quitGroup } = useGroupSettingState();

// Quit group
await quitGroup({
  groupId: 'group_123'
});

hasPermission

function hasPermission(permissionParams: { permission: string })
Has permission Check if the current user has the specified permission

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { hasPermission } = useGroupSettingState();

// Check if user has permission
await hasPermission({
  permission: 'kick_member'
});

canOperateOnMember

function canOperateOnMember(operationParams: { targetUserId: string; operation: string })
checkmemberactionpermission checkwhethercanwithforspecifiedmemberexecuteaction

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { canOperateOnMember } = useGroupSettingState();

// Check if can operate on member
await canOperateOnMember({
  targetUserId: 'user_456',
  operation: 'mute'
});

getAvailablePermissions

function getAvailablePermissions(queryParams?: { userId?: string })
Get available permissions GetCurrentuserorspecifieduserofavailablepermissionlist

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { getAvailablePermissions } = useGroupSettingState();

// Get available permissions for a user
await getAvailablePermissions({
  userId: 'user_123'
});

initWatcher

function initWatcher(watcherParams?: { autoUpdate?: boolean })
Initializewatcherdevice InitializegroupSetofdatawatcher

Example

import { useGroupSettingState } from 'tuikit-atomicx-vue3';

const { initWatcher } = useGroupSettingState();

// Initialize group setting watcher
await initWatcher({
  autoUpdate: true
});

VideoMixerState

🎬 Video Mixer Management Module

Core Features:managementvideomixstreamfunctions,supportsmultipleroutevideosynthesis、layoutmanagement、media sourcecontroletc.advancedvideohandlingfunctions。

Technical Features:supportsreal-timevideomixstream、dynamiclayoutadjust、media sourcemanagementetc.functions。AddedisVideoMixerEnabled、mediaSourceList、activeMediaSourceReactive DataandcompleteofmixstreamcontrolAPI。

Business Value:asliveplatformprovidesprofessionalofvideoproductioncapability,enhancelivequality。

Use Cases:multiplepersonlive、videoinvideo、videosynthesis、professionalproductionetc.scenarios。

Reactive Data

publishVideoQuality

const publishVideoQuality: Ref<any>
Get size by resolution @param {TRTCVideoResolution} resolution - videoresolution @returns {Object} containswidedegreeandhighdegreeofobject
Type: Ref<any>

Example

const size = getSizeByResolution(TRTCVideoResolution.TRTCVideoResolution_1280_720);
console.log(size.width, size.height); // output: 1280, 720

isVideoMixerEnabled

const isVideoMixerEnabled: Ref<any>
Is video mixer enabled
Type: Ref<any>

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { isVideoMixerEnabled } = useVideoMixerState();

// Watch for data changes
watch(isVideoMixerEnabled, (newValue) => {
  console.log('isVideoMixerEnabled updated:', newValue);
});

// Access data directly
console.log('Current isVideoMixerEnabled:', isVideoMixerEnabled.value);

mediaSourceList

const mediaSourceList: Ref<any>
Media source list
Type: Ref<any>

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { mediaSourceList } = useVideoMixerState();

// Watch for data changes
watch(mediaSourceList, (newValue) => {
  console.log('mediaSourceList updated:', newValue);
});

// Access data directly
console.log('Current mediaSourceList:', mediaSourceList.value);

activeMediaSource

const activeMediaSource: Ref<any>
Currently active media source
Type: Ref<any>

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { activeMediaSource } = useVideoMixerState();

// Watch for data changes
watch(activeMediaSource, (newValue) => {
  console.log('activeMediaSource updated:', newValue);
});

// Access data directly
console.log('Current activeMediaSource:', activeMediaSource.value);

API Functions

getVideoDataByQuality

function getVideoDataByQuality(qualityParams: { quality: VideoQuality })
according toqualityGetvideodata Getspecifiedqualityofvideoencodeparameter

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { getVideoDataByQuality } = useVideoMixerState();

// Get video encoding parameters by quality
await getVideoDataByQuality({
  quality: VideoQuality.HD720P
});

getSizeByQuality

function getSizeByQuality(qualityParams: { quality: VideoQuality })
according toqualityGetsize Getspecifiedqualityforshouldofvideosize

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { getSizeByQuality } = useVideoMixerState();

// Get video size by quality
await getSizeByQuality({
  quality: VideoQuality.HD720P
});

getSizeByResolution

function getSizeByResolution(resolutionParams: { resolution: VideoResolution })
Get size by resolution Getspecifiedresolutionforshouldofvideosize

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { getSizeByResolution } = useVideoMixerState();

// Get video size by resolution
await getSizeByResolution({
  resolution: VideoResolution.Resolution_1280_720
});

transformTUIVideoQualityToTRTCVideoResolution

function transformTUIVideoQualityToTRTCVideoResolution(qualityParams: { quality: VideoQuality })
convertvideoqualitytoTRTCresolution willTUIvideoqualityconvertasTRTCresolution

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { transformTUIVideoQualityToTRTCVideoResolution } = useVideoMixerState();

// Transform TUI video quality to TRTC resolution
await transformTUIVideoQualityToTRTCVideoResolution({
  quality: VideoQuality.HD720P
});

transformTRTCVideoResolutionToTUIVideoQuality

function transformTRTCVideoResolutionToTUIVideoQuality(resolutionParams: { resolution: TRTCVideoResolution })
convertTRTCresolutiontovideoquality willTRTCresolutionconvertasTUIvideoquality

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { transformTRTCVideoResolutionToTUIVideoQuality } = useVideoMixerState();

// Transform TRTC resolution to TUI video quality
await transformTRTCVideoResolutionToTUIVideoQuality({
  resolution: TRTCVideoResolution.TRTCVideoResolution_1280_720
});

transformTRTCVideoResModeToTUIVideoResMode

function transformTRTCVideoResModeToTUIVideoResMode(modeParams: { mode: TRTCVideoResMode })
convertTRTCresolutionmode willTRTCresolutionmodeconvertasTUIresolutionmode

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { transformTRTCVideoResModeToTUIVideoResMode } = useVideoMixerState();

// Transform TRTC resolution mode to TUI mode
await transformTRTCVideoResModeToTUIVideoResMode({
  mode: TRTCVideoResMode.TRTCVideoResModeLandscape
});

changeActiveMediaSource

function changeActiveMediaSource(sourceParams: { sourceId: string })
Change active media source switchCurrently active media source

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { changeActiveMediaSource } = useVideoMixerState();

// Change active media source
await changeActiveMediaSource({
  sourceId: 'camera_source_1'
});

updateVideoQuality

function updateVideoQuality(qualityParams: { quality: VideoQuality })
Update video quality updatevideomixstreamofqualityparameter

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { updateVideoQuality } = useVideoMixerState();

// Update video mixer quality
await updateVideoQuality({
  quality: VideoQuality.HD1080P
});

getDefaultLayoutByMediaSource

function getDefaultLayoutByMediaSource(sourceParams: { sourceType: MediaSourceType })
Get default layout by media source Getspecifiedmedia sourcetypeofdefaultlayout

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { getDefaultLayoutByMediaSource } = useVideoMixerState();

// Get default layout by media source type
await getDefaultLayoutByMediaSource({
  sourceType: MediaSourceType.Camera
});

addMediaSource

function addMediaSource(sourceParams: { sourceId: string; sourceType: number; sourceInfo: any })
Add media source tomixstreamdeviceAdd a new media source

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { addMediaSource } = useVideoMixerState();

// Add a camera media source
await addMediaSource({
  sourceId: 'camera_source_1',
  sourceType: 0,
  sourceInfo: { deviceId: 'default' }
});

updateMediaSource

function updateMediaSource(updateParams: { sourceId: string; sourceInfo: any })
Update media source Update the specified media sourceconfiguration

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { updateMediaSource } = useVideoMixerState();

// Update media source configuration
await updateMediaSource({
  sourceId: 'camera_source_1',
  sourceInfo: { x: 0, y: 0, width: 640, height: 480 }
});

removeMediaSource

function removeMediaSource(removeParams: { sourceId: string })
Remove media source frommixstreamdeviceinRemove the specified media source

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { removeMediaSource } = useVideoMixerState();

// Remove media source from mixer
await removeMediaSource({
  sourceId: 'camera_source_1'
});

enableLocalVideoMixer

function enableLocalVideoMixer(enableParams: { enable: boolean })
Enable local video mixer turn onorturn offlocalvideomixstreamfunctions

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { enableLocalVideoMixer } = useVideoMixerState();

// Enable local video mixer
await enableLocalVideoMixer({
  enable: true
});

clearMediaSource

function clearMediaSource()
clearallmedia source clearCurrentaddofallmedia source,releaserelatedresource

Example

// clearallmedia source
clearMediaSource();

initMediaSourceManager

function initMediaSourceManager(initParams?: { config?: any })
Initializemedia sourcemanagementdevice Initializemedia sourcemanagementdeviceconfiguration

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { initMediaSourceManager } = useVideoMixerState();

// Initialize media source manager
await initMediaSourceManager({
  config: { maxSources: 4 }
});

initVideoMixerState

function initVideoMixerState(initParams?: { config?: any })
Initializevideomixstreamstatus Initializevideomixstreamdeviceofstatus

Example

import { useVideoMixerState } from 'tuikit-atomicx-vue3';

const { initVideoMixerState } = useVideoMixerState();

// Initialize video mixer state
await initVideoMixerState({
  config: { defaultQuality: VideoQuality.HD720P }
});

VirtualBackgroundState

🖼️ Virtual Background Management Module

Core Features:managementvirtual backgroundfunctions,supportsbackgroundreplace、backgroundblur、custombackgroundetc.videobeautifyfunctions。

Technical Features:based onAItechnicalachievereal-timebackgroundsplitandreplace。AddedvirtualBackgroundConfigReactive DataandisSupported、setVirtualBackgroundAPI Functions。

Business Value:asuserprovidesprivacy protectionandvideobeautifyfunctions,enhancevideocallexperience。

Use Cases:videocall、inconnectionmeeting、livebeautify、privacy protectionetc.scenarios。

Reactive Data

virtualBackgroundConfig

const virtualBackgroundConfig: Ref<any>
Virtual background config
Type: Ref<any>

Example

import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';

const { virtualBackgroundConfig } = useVirtualBackgroundState();

// Watch for data changes
watch(virtualBackgroundConfig, (newValue) => {
  console.log('virtualBackgroundConfig updated:', newValue);
});

// Access data directly
console.log('Current virtualBackgroundConfig:', virtualBackgroundConfig.value);

API Functions

initVirtualBackground

function initVirtualBackground(initParams: { config: VirtualBackgroundConfig })
Initializevirtual background Initializevirtual backgroundfunctionsconfiguration

Example

import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';

const { initVirtualBackground } = useVirtualBackgroundState();

// Initialize virtual background
await initVirtualBackground({
  config: { enabled: true, type: 'blur' }
});

saveVirtualBackground

function saveVirtualBackground(saveParams: { config: VirtualBackgroundConfig })
Save virtual background saveVirtual background configtolocal

Example

import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';

const { saveVirtualBackground } = useVirtualBackgroundState();

// Save virtual background configuration
await saveVirtualBackground({
  config: { enabled: true, type: 'image', imageUrl: 'https://example.com/bg.jpg' }
});

isSupported

function isSupported(checkParams?: { feature?: string })
checkIs supported checkCurrentdeviceIs supportedvirtual backgroundfunctions

Example

import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';

const { isSupported } = useVirtualBackgroundState();

// Check if virtual background is supported
await isSupported({
  feature: 'blur'
});

setVirtualBackground

function setVirtualBackground(bgParams: { backgroundType: number; backgroundValue?: string })
Set virtual background Set virtual backgroundoftypeandcontent

Example

import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';

const { setVirtualBackground } = useVirtualBackgroundState();

// Set virtual background (0: none, 1: blur, 2: image)
await setVirtualBackground({
  backgroundType: 1,
  backgroundValue: ''
});

ASRState

🎙️ ASR (Automatic Speech Recognition) Management Module

Core Features:managementspeechrecognitionfunctions,supportsreal-timespeechconverttext、transcriptionhistorymanagement、transcriptionexportetc.functions。

Technical Features:based onadvancedofASRtechnical,supportsmultiplespeech recognition、real-timetranscription、historyrecordetc.functions。AddedrecentTranscripts、transcriptHistoryReactive DataandexportTranscriptsAPI。

Business Value:asuserprovidesspeechconverttextservices,enhancecommunicationefficiencyandcanaccessproperty。

Use Cases:meetingrecord、speechtranscription、nonebarriercommunication、contentrecordetc.scenarios。

Reactive Data

recentTranscripts

const recentTranscripts: Ref<any>
recentofspeechtranscriptionrecord
Type: Ref<any>

Example

import { useASRState } from 'tuikit-atomicx-vue3';

const { recentTranscripts } = useASRState();

// Watch for data changes
watch(recentTranscripts, (newValue) => {
  console.log('recentTranscripts updated:', newValue);
});

// Access data directly
console.log('Current recentTranscripts:', recentTranscripts.value);

transcriptHistory

const transcriptHistory: Ref<any>
speechtranscriptionhistoryrecord
Type: Ref<any>

Example

import { useASRState } from 'tuikit-atomicx-vue3';

const { transcriptHistory } = useASRState();

// Watch for data changes
watch(transcriptHistory, (newValue) => {
  console.log('transcriptHistory updated:', newValue);
});

// Access data directly
console.log('Current transcriptHistory:', transcriptHistory.value);

API Functions

setRecentTranscriptsDuration

function setRecentTranscriptsDuration(durationParams: { duration: number })
Setrecenttranscriptionduration Setretainrecenttranscriptioncontentofduration

Example

import { useASRState } from 'tuikit-atomicx-vue3';

const { setRecentTranscriptsDuration } = useASRState();

// Set recent transcripts duration (in seconds)
await setRecentTranscriptsDuration({
  duration: 300
});

clearHistory

function clearHistory()
cleartranscriptionhistoryrecord clearCurrentofspeechtranscriptionhistoryrecord

Example

import { useASRState } from 'tuikit-atomicx-vue3';

const { clearHistory, transcriptHistory } = useASRState();

// clearalltranscriptionrecord
clearHistory();
console.log('transcriptionrecordalreadyclear:', transcriptHistory.value.length === 0);

exportTranscripts

function exportTranscripts(exportParams: { format?: string; timeRange?: { start: number; end: number } })
exporttranscriptioncontent exportspecifiedwhenroomrangeoftranscriptioncontent

Example

import { useASRState } from 'tuikit-atomicx-vue3';

const { exportTranscripts } = useASRState();

// Export transcripts in txt format
await exportTranscripts({
  format: 'txt',
  timeRange: { start: 1700000000000, end: 1700003600000 }
});

SearchState

🔍 SearchfunctionsManagement Module

Core Features:managementfulllayoutSearchfunctions,supportsmessageSearch、userSearch、groupSearchetc.multipledimensiondegreeSearchcapability。

Technical Features:supportsadvancedSearch、Searchhistory、Searchsuggestionetc.functions。refactorReactive Dataaskeyword、results、isLoadingetc.standardizationfield,providescompleteofSearchAPI。

Business Value:asuserprovidesquickfindinformationofcapability,enhanceuseefficiency。

Use Cases:messageSearch、contactSearch、contentfind、historyrecordetc.scenarios。

Reactive Data

keyword

const keyword: Ref<any>
SearchKeyword
Type: Ref<any>

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { keyword } = useSearchState();

// Watch for data changes
watch(keyword, (newValue) => {
  console.log('keyword updated:', newValue);
});

// Access data directly
console.log('Current keyword:', keyword.value);

results

const results: Ref<any>
Results
Type: Ref<any>

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { results } = useSearchState();

// Watch for data changes
watch(results, (newValue) => {
  console.log('results updated:', newValue);
});

// Access data directly
console.log('Current results:', results.value);

isLoading

const isLoading: Ref<any>
Is loading
Type: Ref<any>

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { isLoading } = useSearchState();

// Watch for data changes
watch(isLoading, (newValue) => {
  console.log('isLoading updated:', newValue);
});

// Access data directly
console.log('Current isLoading:', isLoading.value);

error

const error: Ref<any>
Errorinformation
Type: Ref<any>

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { error } = useSearchState();

// Watch for data changes
watch(error, (newValue) => {
  console.log('error updated:', newValue);
});

// Access data directly
console.log('Current error:', error.value);

searchAdvancedParams

const searchAdvancedParams: Ref<any>
advancedSearchparameter
Type: Ref<any>

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { searchAdvancedParams } = useSearchState();

// Watch for data changes
watch(searchAdvancedParams, (newValue) => {
  console.log('searchAdvancedParams updated:', newValue);
});

// Access data directly
console.log('Current searchAdvancedParams:', searchAdvancedParams.value);

selectedSearchType

const selectedSearchType: Ref<any>
Selected search type
Type: Ref<any>

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { selectedSearchType } = useSearchState();

// Watch for data changes
watch(selectedSearchType, (newValue) => {
  console.log('selectedSearchType updated:', newValue);
});

// Access data directly
console.log('Current selectedSearchType:', selectedSearchType.value);

API Functions

setKeyword

function setKeyword(keywordParams: { keyword: string })
SetKeyword SetSearchofKeyword

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { setKeyword } = useSearchState();

// Set search keyword
await setKeyword({
  keyword: 'hello'
});

setSelectedType

function setSelectedType(typeParams: { searchType: string })
Set selected type SetCurrentSelected search type

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { setSelectedType } = useSearchState();

// Set selected search type
await setSelectedType({
  searchType: 'message'
});

setSearchMessageAdvancedParams

function setSearchMessageAdvancedParams(messageParams: { conversationId?: string; timeRange?: { start: number; end: number }; senderList?: string[] })
SetmessageSearch advanced params SetmessageSearchofadvancedfilterparameter

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { setSearchMessageAdvancedParams } = useSearchState();

// Set message search advanced params
await setSearchMessageAdvancedParams({
  conversationId: 'C2C_user123',
  timeRange: { start: 1700000000000, end: 1700003600000 },
  senderList: ['user_001', 'user_002']
});

setSearchUserAdvancedParams

function setSearchUserAdvancedParams(userParams: { userType?: string; isOnline?: boolean })
SetuserSearch advanced params SetuserSearchofadvancedfilterparameter

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { setSearchUserAdvancedParams } = useSearchState();

// Set user search advanced params
await setSearchUserAdvancedParams({
  userType: 'friend',
  isOnline: true
});

setSearchGroupAdvancedParams

function setSearchGroupAdvancedParams(groupParams: { groupType?: string; memberCountRange?: { min: number; max: number } })
SetgroupSearch advanced params SetgroupSearchofadvancedfilterparameter

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { setSearchGroupAdvancedParams } = useSearchState();

// Set group search advanced params
await setSearchGroupAdvancedParams({
  groupType: 'Public',
  memberCountRange: { min: 10, max: 100 }
});

loadMore

function loadMore(loadParams?: { cursor?: string; count?: number })
Load more Load moreResults

Example

import { useSearchState } from 'tuikit-atomicx-vue3';

const { loadMore } = useSearchState();

// Load more search results
await loadMore({
  cursor: 'next_page_cursor',
  count: 20
});

SeatStore

🪑 seatstoreManagement Module

Core Features:providesseatstatusofunderlyingstoreandmanagement,supportsseatinformationcache、User info map、devicerequesthandlingetc.Core Features。

Technical Features:usesreactivestoredesign,supportsreal-timestatussync、event-drivenactionupdateetc.functions。AddedliveOwnerUserId、localUserId、seatListetc.Reactive DataandgetUserInfo、convertUserInfoToAudienceInfoAPI。

Business Value:asseatmanagementprovidescanrelyofdatabasic,ensureseatstatusofconsistency。

Use Cases:seatstatusmanagement、userinformationstore、devicestatustracketc.underlyingscenarios。

Reactive Data

liveOwnerUserId

const liveOwnerUserId: Ref<any>
liveroomhostUser ID
Type: Ref<any>

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { liveOwnerUserId } = useSeatStore();

// Watch for data changes
watch(liveOwnerUserId, (newValue) => {
  console.log('liveOwnerUserId updated:', newValue);
});

// Access data directly
console.log('Current liveOwnerUserId:', liveOwnerUserId.value);

localUserId

const localUserId: Ref<any>
localUser ID
Type: Ref<any>

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { localUserId } = useSeatStore();

// Watch for data changes
watch(localUserId, (newValue) => {
  console.log('localUserId updated:', newValue);
});

// Access data directly
console.log('Current localUserId:', localUserId.value);

seatList

const seatList: Ref<any>
Seat list,containsallseatofstatusanduserinformation storeCurrent liveroomofallseatinformation
Type: Ref<any>

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { seatList } = useSeatStore();

// Watch for data changes
watch(seatList, (newValue) => {
  console.log('seatList updated:', newValue);
});

// Access data directly
console.log('Current seatList:', seatList.value);

coHostUserList

const coHostUserList: Ref<any>
Co-host user list
Type: Ref<any>

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { coHostUserList } = useSeatStore();

// Watch for data changes
watch(coHostUserList, (newValue) => {
  console.log('coHostUserList updated:', newValue);
});

// Access data directly
console.log('Current coHostUserList:', coHostUserList.value);

sentDeviceRequestMap

const sentDeviceRequestMap: Ref<any>
alreadysendofdevicerequestmap
Type: Ref<any>

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { sentDeviceRequestMap } = useSeatStore();

// Watch for data changes
watch(sentDeviceRequestMap, (newValue) => {
  console.log('sentDeviceRequestMap updated:', newValue);
});

// Access data directly
console.log('Current sentDeviceRequestMap:', sentDeviceRequestMap.value);

receivedDeviceRequestMap

const receivedDeviceRequestMap: Ref<any>
alreadyreceiveofdevicerequestmap
Type: Ref<any>

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { receivedDeviceRequestMap } = useSeatStore();

// Watch for data changes
watch(receivedDeviceRequestMap, (newValue) => {
  console.log('receivedDeviceRequestMap updated:', newValue);
});

// Access data directly
console.log('Current receivedDeviceRequestMap:', receivedDeviceRequestMap.value);

userInfoMap

const userInfoMap: Ref<any>
User info maptable
Type: Ref<any>

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { userInfoMap } = useSeatStore();

// Watch for data changes
watch(userInfoMap, (newValue) => {
  console.log('userInfoMap updated:', newValue);
});

// Access data directly
console.log('Current userInfoMap:', userInfoMap.value);

API Functions

getUserInfo

function getUserInfo(userParams: { userId: string })
Get user info Getspecifieduserofdetailedinformation

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { getUserInfo } = useSeatStore();

// Get user info by userId
await getUserInfo({
  userId: 'user_123'
});

convertUserInfoToAudienceInfo

function convertUserInfoToAudienceInfo(convertParams: { userInfo: any })
Convert user info to audience info Convert user information to audience information format

Example

import { useSeatStore } from 'tuikit-atomicx-vue3';

const { convertUserInfoToAudienceInfo } = useSeatStore();

// Convert user info to audience info format
await convertUserInfoToAudienceInfo({
  userInfo: { userId: 'user_123', nickName: 'John', avatar: 'https://example.com/avatar.png' }
});