2025-06-19 14:10:17 +08:00

161 lines
3.4 KiB
Plaintext

import { UTSAndroid } from 'io.dcloud.uts'
import { XP2PAppConfig, XP2P } from 'com.tencent.xnet'
import { Result, InitParams, IdParams } from '../interface.uts'
export const startService = async function (params: InitParams): Promise<Result> {
try {
const context = UTSAndroid.getAppContext()
let xp2pConfig: XP2PAppConfig = new XP2PAppConfig()
xp2pConfig.appKey = params.appKey
xp2pConfig.appSecret = params.appSecret
await XP2P.startService(
context,
params.productId,
params.deviceName,
params.xp2pInfo,
xp2pConfig
)
return {
code: 0,
data: {},
message: '成功'
}
} catch (error) {
return {
code: -1,
data: {},
message: error.toString()
}
}
}
export const getLiveUrl = async function (params: IdParams): Promise<Result> {
try {
const liveUrl = await XP2P.delegateHttpFlv(params.id)
return {
code: 0,
data: {
url: liveUrl
},
message: '成功'
}
} catch (error) {
return {
code: -1,
data: {},
message: error.toString()
}
}
}
export const stopService = async function (params: IdParams): Promise<Result> {
try {
await XP2P.stopService(params.id)
return {
code: 0,
data: {},
message: '成功'
}
} catch (error) {
return {
code: -1,
data: {},
message: error.toString()
}
}
}
// export const setCallback = function (callback: XP2PCallback) {
// try {
// XP2P.setCallback(callback)
// } catch (error) {
// console.log(2, error)
// }
// }
export const runSendService = async function (
id: string,
cmd: string,
crypto: boolean
): Promise<Result> {
try {
await XP2P.runSendService(id, cmd, crypto)
console.log('开始发送服务')
return {
code: 0,
data: {},
message: '成功'
}
} catch (error) {
return {
code: -1,
data: {},
message: error.toString()
}
}
}
export const stopSendService = async function (id: string): Promise<Result> {
try {
await XP2P.stopSendService(id, null)
console.log('停止发送服务')
return {
code: 0,
data: {},
message: '成功'
}
} catch (error) {
return {
code: -1,
data: {},
message: error.toString()
}
}
}
export const dataSend = async function (id: string, data: Array<number>): Promise<Result> {
try {
let byteTest = new ByteArray(data.length.toInt())
// byteTest.set(0, (0xff).toByte())
// byteTest.set(1, (0xf9).toByte())
// let profile = 2
// let freqIdx = 8
// let chanCfg = 1
// let packetLen = data.length + 7
// byteTest.set(2, (((profile - 1) << 6) + (freqIdx << 2) + (chanCfg >> 2)).toByte())
// byteTest.set(3, (((chanCfg & 3) << 6) + (packetLen >> 11)).toByte())
// byteTest.set(4, ((packetLen & 0x7ff) >> 3).toByte())
// byteTest.set(5, (((packetLen & 7) << 5) + 0x1f).toByte())
// byteTest.set(6, (0xfc).toByte())
for (let i = 0; i < data.length; i++) {
byteTest.set(i.toInt(), data[i].toByte())
}
console.log(byteTest)
console.log(1, id, byteTest[0], byteTest[1], data.length.toInt())
const result = await XP2P.dataSend(id, byteTest, data.length.toInt())
console.log('发送数据', result)
return {
code: 0,
data: {},
message: '成功'
}
} catch (error) {
return {
code: -1,
data: {},
message: error.toString()
}
}
}