mirror of
https://github.com/develop202/migu_video.git
synced 2025-12-18 07:44:50 +08:00
cs
This commit is contained in:
74
utils/getddCalcuURL.js
Normal file
74
utils/getddCalcuURL.js
Normal file
@@ -0,0 +1,74 @@
|
||||
const importObj = {
|
||||
a: {
|
||||
a: (a, b, c) => { },
|
||||
b: (a) => { return 0 },
|
||||
c: () => { },
|
||||
d: (a, b, c, d) => { return 0 },
|
||||
e: (a) => { return 0 },
|
||||
f: (a, b, c, d, e) => { return 0 },
|
||||
g: (a, b) => { return 0 },
|
||||
h: (a, b) => { return 0 },
|
||||
i: (a) => { return 0 },
|
||||
j: (a, b, c, d, e) => { return 0 }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密url
|
||||
* @param {string} videoURL - 视频url
|
||||
* @param {Uint8Array} memoryView - 内存
|
||||
* @param {Function} getEncrypt - 加密方法
|
||||
* @returns {string} - 加密地址
|
||||
*/
|
||||
function encrypt(videoURL, memoryView, getEncrypt) {
|
||||
// 将地址写入内存
|
||||
let i;
|
||||
for (i = 0; i < videoURL.length; ++i) {
|
||||
memoryView[i] = videoURL.charCodeAt(i)
|
||||
}
|
||||
memoryView[i] = 0
|
||||
|
||||
// 加密内存中的url
|
||||
let start = getEncrypt(0)
|
||||
|
||||
// 从内存中读取加密后的url
|
||||
let encryptedURL = ""
|
||||
for (let i = start; memoryView[i] != 0; ++i) {
|
||||
encryptedURL += String.fromCharCode(memoryView[i])
|
||||
}
|
||||
return encryptedURL
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 初始化wasm
|
||||
* @param {string} masmURL - wasm地址
|
||||
* @returns {object} - wasm导出的内容
|
||||
*/
|
||||
async function init_wasm(masmURL) {
|
||||
// 获取wasm文件
|
||||
let resp = await fetch(masmURL);
|
||||
// 初始化
|
||||
let { instance } = await WebAssembly.instantiateStreaming(resp, importObj)
|
||||
return instance.exports;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取加密url
|
||||
* @param {object} exports - wasm导出的内容
|
||||
* @param {string} videoURL - 视频地址
|
||||
* @returns {string} - 播放地址
|
||||
*/
|
||||
function getEncryptURL(exports, videoURL) {
|
||||
// 获得内存
|
||||
const memory = exports.k
|
||||
const memoryView = new Uint8Array(memory.buffer)
|
||||
|
||||
// 获取加密方法
|
||||
const getEncrypt = exports.m
|
||||
return encrypt(videoURL, memoryView, getEncrypt)
|
||||
}
|
||||
|
||||
export { init_wasm, getEncryptURL }
|
||||
Reference in New Issue
Block a user