需要添加直播接口
This commit is contained in:
@@ -0,0 +1,237 @@
|
||||
import {
|
||||
UserProfileParam, LiveInfoParam, AudioChangerTypeParam, AudioReverbTypeParam,
|
||||
TakeSeatModeType, MoveSeatPolicyType, BarrageParam, VideoQualityType, LiveUserInfoParam, MessageType,
|
||||
UserAllowType, GenderType, LiveModifyFlag, AppendLocalTipOptions,
|
||||
} from '../../interface.uts';
|
||||
|
||||
import {
|
||||
UserProfile, LiveInfo, TakeSeatMode, MoveSeatPolicy, Barrage, LiveUserInfo, BarrageType,
|
||||
AudioChangerType, AudioReverbType, VideoQuality, AllowType, Gender
|
||||
} from 'AtomicXCore';
|
||||
|
||||
|
||||
export class ParamsCovert {
|
||||
public static convertUserProfile(userProfile : UserProfileParam) : UserProfile {
|
||||
// TODO: iOS 底层没有对齐,创建 UserProfile 还需要传参,待底层对齐
|
||||
let userID = userProfile.userID ?? ""
|
||||
const nativeUserProfile = new UserProfile(userID = userID)
|
||||
nativeUserProfile.userID = userProfile.userID ?? ""
|
||||
nativeUserProfile.nickname = userProfile.nickname ?? ""
|
||||
nativeUserProfile.avatarURL = userProfile.avatarURL ?? ""
|
||||
nativeUserProfile.selfSignature = userProfile.selfSignature ?? ""
|
||||
nativeUserProfile.gender = ParamsCovert.convertGender(userProfile.gender)
|
||||
nativeUserProfile.role = userProfile.role?.toUInt32()
|
||||
nativeUserProfile.level = userProfile.level?.toUInt32()
|
||||
nativeUserProfile.birthday = userProfile.birthday?.toUInt32()
|
||||
nativeUserProfile.allowType = ParamsCovert.convertAllowType(userProfile.allowType)
|
||||
//nativeUserProfile.customInfo = userProfile.customInfo //TODO: ByteArray转换
|
||||
return nativeUserProfile
|
||||
}
|
||||
|
||||
public static convertAllowType(allowType ?: UserAllowType) : AllowType {
|
||||
switch (allowType) {
|
||||
case 'NEED_CONFIRM':
|
||||
return AllowType.needConfirm;
|
||||
case 'DENY_ANY':
|
||||
return AllowType.denyAny;
|
||||
default:
|
||||
return AllowType.allowAny;
|
||||
}
|
||||
}
|
||||
public static convertGender(gender ?: GenderType) : Gender {
|
||||
switch (gender) {
|
||||
case 'MALE':
|
||||
return Gender.male;
|
||||
case 'FEMALE':
|
||||
return Gender.female;
|
||||
default:
|
||||
return Gender.unknown;
|
||||
}
|
||||
}
|
||||
|
||||
public static convertLiveInfo(liveInfo : LiveInfoParam) : LiveInfo {
|
||||
let 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?.toUInt() ?? 600;
|
||||
nativeLiveInfo.coverURL = liveInfo.coverURL ?? "";
|
||||
nativeLiveInfo.backgroundURL = liveInfo.backgroundURL ?? "";
|
||||
nativeLiveInfo.categoryList = liveInfo.categoryList ?? [];
|
||||
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
|
||||
}
|
||||
|
||||
public static convertTakeSeatMode(seatMode ?: TakeSeatModeType) : TakeSeatMode {
|
||||
if (seatMode == 'FREE') {
|
||||
return TakeSeatMode.free
|
||||
}
|
||||
return TakeSeatMode.apply
|
||||
}
|
||||
|
||||
public static convertMoveSeatPolicy(policyType ?: MoveSeatPolicyType) : MoveSeatPolicy {
|
||||
switch (policyType) {
|
||||
case 'FORCE_REPLACE':
|
||||
return MoveSeatPolicy.forceReplace;
|
||||
case 'SWAP_POSITION':
|
||||
return MoveSeatPolicy.swapPosition;
|
||||
default:
|
||||
return MoveSeatPolicy.abortWhenOccupied;
|
||||
}
|
||||
}
|
||||
|
||||
public static covertVideoQuality(quality : VideoQualityType) : VideoQuality {
|
||||
switch (quality) {
|
||||
case 'VIDEOQUALITY_540P':
|
||||
return VideoQuality.quality540P; // 标清540P
|
||||
case 'VIDEOQUALITY_720P':
|
||||
return VideoQuality.quality720P; // 高清720P
|
||||
case 'VIDEOQUALITY_1080P':
|
||||
return VideoQuality.quality1080P; // 超清1080P
|
||||
default:
|
||||
return VideoQuality.quality360P; // 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?.toInt() ?? 0
|
||||
nativeBarrage.timestampInSecond = barrageParam.timestampInSecond?.toDouble() ?? 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 convertMessageType(messageType ?: MessageType) : BarrageType {
|
||||
if (messageType == 'CUSTOM') {
|
||||
return BarrageType.custom
|
||||
}
|
||||
return BarrageType.text
|
||||
}
|
||||
|
||||
public static convertLiveUserInfo(userInfo ?: LiveUserInfoParam) : LiveUserInfo {
|
||||
let nativeUserInfo : LiveUserInfo = new LiveUserInfo()
|
||||
nativeUserInfo.userID = userInfo?.userID ?? ""
|
||||
nativeUserInfo.userName = userInfo?.userName ?? ""
|
||||
nativeUserInfo.avatarURL = userInfo?.avatarURL ?? ""
|
||||
return nativeUserInfo
|
||||
}
|
||||
|
||||
public static convertAudioChangerType(changerType : AudioChangerTypeParam) : AudioChangerType {
|
||||
switch (changerType) {
|
||||
case 'CHILD':
|
||||
return AudioChangerType.child;
|
||||
case 'LITTLE_GIRL':
|
||||
return AudioChangerType.littleGirl;
|
||||
case 'MAN':
|
||||
return AudioChangerType.man;
|
||||
case 'HEAVY_METAL':
|
||||
return AudioChangerType.heavyMetal;
|
||||
case 'COLD':
|
||||
return AudioChangerType.cold;
|
||||
case 'FOREIGNER':
|
||||
return AudioChangerType.foreigner;
|
||||
case 'TRAPPED_BEAST':
|
||||
return AudioChangerType.trappedBeast;
|
||||
case 'FATSO':
|
||||
return AudioChangerType.fatso;
|
||||
case 'STRONG_CURRENT':
|
||||
return AudioChangerType.strongCurrent;
|
||||
case 'HEAVY_MACHINERY':
|
||||
return AudioChangerType.heavyMachinery;
|
||||
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.smallRoom;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
private static convertModifyFlag(flag : LiveModifyFlag) : LiveInfo.ModifyFlag {
|
||||
switch (flag) {
|
||||
case 'NONE':
|
||||
return LiveInfo.ModifyFlag.none
|
||||
case 'LIVE_NAME':
|
||||
return LiveInfo.ModifyFlag.liveName
|
||||
case 'NOTICE':
|
||||
return LiveInfo.ModifyFlag.notice
|
||||
case 'IS_MESSAGE_DISABLE':
|
||||
return LiveInfo.ModifyFlag.isMessageDisable
|
||||
case 'IS_PUBLIC_VISIBLE':
|
||||
return LiveInfo.ModifyFlag.isPublicVisible
|
||||
case 'SEAT_MODE':
|
||||
return LiveInfo.ModifyFlag.seatMode
|
||||
case 'COVER_URL':
|
||||
return LiveInfo.ModifyFlag.coverURL
|
||||
case 'BACKGROUND_URL':
|
||||
return LiveInfo.ModifyFlag.backgroundURL
|
||||
case 'CATEGORY_LIST':
|
||||
return LiveInfo.ModifyFlag.categoryList
|
||||
case 'ACTIVITY_STATUS':
|
||||
return LiveInfo.ModifyFlag.activityStatus
|
||||
case 'SEAT_LAYOUT_TEMPLATE_ID':
|
||||
return LiveInfo.ModifyFlag.seatLayoutTemplateID
|
||||
default:
|
||||
return LiveInfo.ModifyFlag.none
|
||||
}
|
||||
}
|
||||
|
||||
public static convertModifyFlagList(modifyFlagList : LiveModifyFlag[]) : LiveInfo.ModifyFlag {
|
||||
let combinedFlag : LiveInfo.ModifyFlag = LiveInfo.ModifyFlag.none
|
||||
|
||||
if (modifyFlagList != null && modifyFlagList.length > 0) {
|
||||
modifyFlagList.forEach((flag : LiveModifyFlag) => {
|
||||
const flagValue = ParamsCovert.convertModifyFlag(flag)
|
||||
combinedFlag.insert(flagValue)
|
||||
})
|
||||
}
|
||||
|
||||
return combinedFlag
|
||||
}
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user