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 { 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 { 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 { 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 { 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 { 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): Promise { 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() } } }