需要添加直播接口

This commit is contained in:
cbb
2026-01-12 17:52:15 +08:00
parent 83fec2617c
commit 13af9eb303
281 changed files with 313157 additions and 104 deletions

View File

@@ -0,0 +1,216 @@
import {
UserProfileParam, LiveInfoParam, TakeSeatModeType, LiveUserInfoParam, MoveSeatPolicyType,
VideoQualityType, BarrageParam, MessageType, AudioReverbTypeParam, AudioChangerTypeParam,
LiveModifyFlag, AppendLocalTipOptions,
} from '../../interface.uts';
import { UserProfile, AllowType, Gender, } from 'io.trtc.tuikit.atomicxcore.api.login';
import { LiveInfo, LiveUserInfo, TakeSeatMode, MoveSeatPolicy, } from 'io.trtc.tuikit.atomicxcore.api.live';
import { VideoQuality, AudioChangerType, AudioReverbType, } from 'io.trtc.tuikit.atomicxcore.api.device';
import { Barrage, BarrageType, } from 'io.trtc.tuikit.atomicxcore.api.barrage';
export class ParamsCovert {
public static convertUserProfile(userProfile : UserProfileParam) : UserProfile {
const nativeUserProfile = new UserProfile()
nativeUserProfile.userID = userProfile.userID ?? ""
nativeUserProfile.nickname = userProfile.nickname
nativeUserProfile.avatarURL = userProfile.avatarURL
nativeUserProfile.selfSignature = userProfile.selfSignature
nativeUserProfile.gender = Gender.parse(userProfile.gender?.toInt() ?? 0)
nativeUserProfile.role = userProfile.role?.toInt()
nativeUserProfile.level = userProfile.level?.toInt()
nativeUserProfile.birthday = userProfile.birthday?.toLong()
nativeUserProfile.allowType = AllowType.parse(userProfile.allowType?.toInt() ?? 0)
//nativeUserProfile.customInfo = userProfile.customInfo //TODO: ByteArray转换
return nativeUserProfile
}
public static convertLiveInfo(liveInfo : LiveInfoParam) : LiveInfo {
const nativeLiveInfo = new LiveInfo()
nativeLiveInfo.liveID = liveInfo.liveID
nativeLiveInfo.liveName = liveInfo.liveName ?? ""
nativeLiveInfo.notice = liveInfo.notice ?? ""
nativeLiveInfo.isMessageDisable = liveInfo.isMessageDisable ?? false
nativeLiveInfo.isPublicVisible = liveInfo.isPublicVisible ?? true
nativeLiveInfo.isSeatEnabled = liveInfo.isSeatEnabled ?? true
nativeLiveInfo.keepOwnerOnSeat = liveInfo.keepOwnerOnSeat ?? false
nativeLiveInfo.maxSeatCount = liveInfo.maxSeatCount?.toInt() ?? 0
nativeLiveInfo.seatMode = ParamsCovert.convertTakeSeatMode(liveInfo.seatMode)
nativeLiveInfo.seatLayoutTemplateID = liveInfo.seatLayoutTemplateID?.toInt() ?? 600
nativeLiveInfo.coverURL = liveInfo.coverURL ?? ""
nativeLiveInfo.backgroundURL = liveInfo.backgroundURL ?? ""
let list = mutableListOf<Int>()
liveInfo.categoryList?.forEach((info : number) => {
list.add(info.toInt())
})
nativeLiveInfo.categoryList = list;
nativeLiveInfo.activityStatus = liveInfo.activityStatus?.toInt() ?? 0
nativeLiveInfo.totalViewerCount = liveInfo.totalViewerCount?.toInt() ?? 0
nativeLiveInfo.isGiftEnabled = liveInfo.isGiftEnabled ?? true
nativeLiveInfo.metaData = liveInfo.metaData ?? Map<string, string>()
return nativeLiveInfo
}
private static convertTakeSeatMode(seatMode ?: TakeSeatModeType) : TakeSeatMode {
if (seatMode == 'FREE') {
return TakeSeatMode.FREE
}
return TakeSeatMode.APPLY
}
private static convertModifyFlag(flag : LiveModifyFlag) : LiveInfo.ModifyFlag {
switch (flag) {
case 'LIVE_NAME':
return LiveInfo.ModifyFlag.LIVE_NAME
case 'NOTICE':
return LiveInfo.ModifyFlag.NOTICE
case 'IS_MESSAGE_DISABLE':
return LiveInfo.ModifyFlag.IS_MESSAGE_DISABLE
case 'IS_PUBLIC_VISIBLE':
return LiveInfo.ModifyFlag.IS_PUBLIC_VISIBLE
case 'SEAT_MODE':
return LiveInfo.ModifyFlag.SEAT_MODE
case 'COVER_URL':
return LiveInfo.ModifyFlag.COVER_URL
case 'BACKGROUND_URL':
return LiveInfo.ModifyFlag.BACKGROUND_URL
case 'CATEGORY_LIST':
return LiveInfo.ModifyFlag.CATEGORY_LIST
case 'ACTIVITY_STATUS':
return LiveInfo.ModifyFlag.ACTIVITY_STATUS
case 'SEAT_LAYOUT_TEMPLATE_ID':
return LiveInfo.ModifyFlag.SEAT_LAYOUT_TEMPLATE_ID
default:
return LiveInfo.ModifyFlag.NONE
}
}
public static convertModifyFlagList(modifyFlagList ?: LiveModifyFlag[]) : List<LiveInfo.ModifyFlag> {
let arrays = Array<LiveInfo.ModifyFlag>()
if (modifyFlagList != null && modifyFlagList.length > 0) {
modifyFlagList.forEach((flag : LiveModifyFlag) => {
const result = ParamsCovert.convertModifyFlag(flag)
arrays.push(result)
})
}
return arrays
}
public static convertMoveSeatPolicy(policyType ?: MoveSeatPolicyType) : MoveSeatPolicy {
switch (policyType) {
case 'FORCE_REPLACE':
return MoveSeatPolicy.FORCE_REPLACE;
case 'SWAP_POSITION':
return MoveSeatPolicy.SWAP_POSITION;
default:
return MoveSeatPolicy.ABORT_WHEN_OCCUPIED;
}
}
public static covertVideoQuality(quality : VideoQualityType) : VideoQuality {
switch (quality) {
case 'VIDEOQUALITY_540P':
return VideoQuality.QUALITY_540P; // 标清540P
case 'VIDEOQUALITY_720P':
return VideoQuality.QUALITY_720P; // 高清720P
case 'VIDEOQUALITY_1080P':
return VideoQuality.QUALITY_1080P; // 超清1080P
default:
return VideoQuality.QUALITY_360P; // value = 1 低清360P
}
}
public static convertBarrage(barrageParam : AppendLocalTipOptions) : Barrage {
const nativeBarrage = new Barrage()
nativeBarrage.liveID = barrageParam.liveID
nativeBarrage.sender = ParamsCovert.convertLiveUserInfo(barrageParam.sender)
nativeBarrage.sequence = barrageParam.sequence?.toLong() ?? 0
nativeBarrage.timestampInSecond = barrageParam.timestampInSecond?.toLong() ?? 0
nativeBarrage.messageType = ParamsCovert.convertMessageType(barrageParam.messageType)
nativeBarrage.textContent = barrageParam.textContent ?? ""
nativeBarrage.extensionInfo = barrageParam.extensionInfo ?? Map<string, string>()
nativeBarrage.businessID = barrageParam.businessID ?? ""
nativeBarrage.data = barrageParam.data ?? ""
return nativeBarrage
}
private static convertLiveUserInfo(info : LiveUserInfoParam) : LiveUserInfo {
let liveUseInfo = new LiveUserInfo()
liveUseInfo.userID = info?.userID ?? ""
liveUseInfo.userName = info?.userName ?? ""
liveUseInfo.avatarURL = info?.avatarURL ?? ""
return liveUseInfo
}
private static convertMessageType(messageType ?: MessageType) : BarrageType {
if (messageType == 'CUSTOM') {
return BarrageType.CUSTOM
}
return BarrageType.TEXT
}
public static convertAudioChangerType(changerType : AudioChangerTypeParam) : AudioChangerType {
switch (changerType) {
case 'CHILD':
return AudioChangerType.CHILD;
case 'LITTLE_GIRL':
return AudioChangerType.LITTLE_GIRL;
case 'MAN':
return AudioChangerType.MAN;
case 'HEAVY_METAL':
return AudioChangerType.HEAVY_METAL;
case 'COLD':
return AudioChangerType.COLD;
case 'FOREIGNER':
return AudioChangerType.FOREIGNER;
case 'TRAPPED_BEAST':
return AudioChangerType.TRAPPED_BEAST;
case 'FATSO':
return AudioChangerType.FATSO;
case 'STRONG_CURRENT':
return AudioChangerType.STRONG_CURRENT;
case 'HEAVY_MACHINERY':
return AudioChangerType.HEAVY_MACHINERY;
case 'ETHEREAL':
return AudioChangerType.ETHEREAL;
default:
return AudioChangerType.NONE;
}
}
public static convertAudioReverbType(reverbType : AudioReverbTypeParam) : AudioReverbType {
switch (reverbType) {
case 'KTV':
return AudioReverbType.KTV;
case 'SMALL_ROOM':
return AudioReverbType.SMALL_ROOM;
case 'AUDITORIUM':
return AudioReverbType.AUDITORIUM;
case 'DEEP':
return AudioReverbType.DEEP;
case 'LOUD':
return AudioReverbType.LOUD;
case 'METALLIC':
return AudioReverbType.METALLIC;
case 'MAGNETIC':
return AudioReverbType.MAGNETIC;
default:
return AudioReverbType.NONE;
}
}
public static convertJsonToUTSJSONObject(jsonData ?: string): UTSJSONObject {
let jsonObject = new UTSJSONObject();
if (jsonData == null) {
return jsonObject;
}
try {
jsonObject = JSON.parse(jsonData) as UTSJSONObject;
} catch (error) {
console.error('JSON parse failed:', error);
}
return jsonObject
}
}