161 lines
3.4 KiB
Plaintext
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()
|
|
}
|
|
}
|
|
}
|