Commit ee229ea4 by haojie

音频测试失败

parent 9c638a90
......@@ -545,6 +545,10 @@ const splitCallback = (splitInfo: any) => {
}
}
if (audioSplitTaskTotal.value === num) {
// 通知python清空目录
callPyjsInWindow('deleteTemporaryAudio', {
id: route.query.id,
});
// 执行完毕,可以提交
if (splitInfo.type == 'create') {
// 创建
......@@ -566,6 +570,7 @@ const splitCallback = (splitInfo: any) => {
// 音频切割v2
const audioSplitV2 = async (type: string) => {
// 先将所有的音频转换成MP3
// 清空总次数
audioSplitTaskTotal.value = 0;
for (let i = 0; i < createLiveInfo.value[createLiveKeys.audioScriptList].length; i++) {
......
......@@ -77,14 +77,11 @@ import CustomDialog from '@/components/Dialog.vue';
import CustomInput from '@/components/input/index.vue';
import routerConfig from '@/router/tool';
import { useRouter } from 'vue-router';
import { getDigitalPeopleList, uploadToAly } from '@/service/Common';
import { getDigitalPeopleList } from '@/service/Common';
import Button from '@/components/Button.vue';
import { callPyjsInWindow, injectWindow } from '@/utils/pyqt';
import { jumpToCreateLivePage } from '@/router/jump';
import { audioMerge, downloadAudioList, splitAudio } from '@/utils/audio';
import { getFile, randomIntFormList } from '@/utils/tool';
import { useStore } from 'vuex';
import { audioSplitDuration } from '@/constants/token';
const router = useRouter();
const store = useStore();
......@@ -204,7 +201,6 @@ const startTest = async () => {
// // 'http://yunyi-live.oss-cn-hangzhou.aliyuncs.com/upload/1/2023-08-11efe3f1ea-b445-42e2-93b0-39a70fb7c6f5.mp3',
// // 'http://yunyi-live.oss-cn-hangzhou.aliyuncs.com/upload/1/2023-08-11dd2372d8-73ff-4526-bf59-b1618a3f218f.mp3',
// 'http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/jupiter-flow/tmp/ad08fa0a70ae4ea88d11ad5e394ce045.wav?Expires=1692149777&OSSAccessKeyId=LTAIUpwNp2H7pBG5&Signature=D93qMT1DovslSOVa9oufV2cGZxE%3D',
// 'http://nls-cloud-cn-shanghai.oss-cn-shanghai.aliyuncs.com/jupiter-flow/tmp/ad08fa0a70ae4ea88d11ad5e394ce045.wav?Expires=1692149777&OSSAccessKeyId=LTAIUpwNp2H7pBG5&Signature=D93qMT1DovslSOVa9oufV2cGZxE%3D',
// ];
// let list = [
// 'http://yunyi-live.oss-cn-hangzhou.aliyuncs.com/upload/1/2023-08-11dd2372d8-73ff-4526-bf59-b1618a3f218f.mp3',
......
import audiobufferToWav from 'audiobuffer-to-wav';
import { callPyjsInWindow, writeLog } from '@/utils/pyqt';
import { writeLog } from '@/utils/pyqt';
import { getFile } from './tool';
// import lamejs from 'lamejs';
import request from '@/utils/upLoadRequest';
// import audioConversion from '@/worker/audioConversion.js?worker';
// dev
// "@vitejs/plugin-vue": "^1.3.0",
// "@vitejs/plugin-vue-jsx": "^1.1.7",
export const createAudioContext = () => {
return new (window.AudioContext || window.webkitAudioContext)();
};
const audioContext = createAudioContext();
// 等待python合并mp3文件
export const pyAudioMerge = async (list: Blob[]) => {
// <Blob>
return new Promise((reslove) => {
callPyjsInWindow('mergeAudio', list);
reslove(111);
// 获取文件的buffer
export const getFileBuffer = (url: string) => {
return new Promise<Blob>((resolve, reject) => {
request
.get(url, {
responseType: 'arraybuffer',
})
.then(async (res) => {
const audioBuffer = await audioContext.decodeAudioData(res);
resolve(audioBuffer);
})
.catch((error) => {
console.log(error, '下载文件失败');
reject(error);
});
});
};
......@@ -110,55 +114,6 @@ function mergeBuffers(bufferList) {
return mergedBuffer;
}
// mp3 worker
// export const mp3Worker = async (blobList: any[]) => {
// return new Promise<Blob>((reslove) => {
// // worker
// const worker: Worker = new audioConversion();
// worker.onmessage = function (event) {
// const blob = event.data;
// // 结束线程
// worker.terminate();
// // 处理编码后的数据,例如保存为文件或进行其他操作
// reslove(blob);
// };
// console.log('发送消息');
// worker.postMessage({
// blobList: blobList,
// });
// });
// };
// 导出为 MP3
// export function exportToMp3(bufferList) {
// // 合并音频数据
// let mergedBuffer = mergeBuffers(bufferList);
// let start = performance.now();
// // 创建 MP3 编码器
// let encoder = new lamejs.Mp3Encoder(mergedBuffer.length, 44100, 128); // 使用 44100 采样率和 128kbps 比特率
// // 存储编码后的数据
// let mp3Data = [];
// // 编码音频数据
// let blockSize = 1152; // 使用默认块大小
// let bufferLength = mergedBuffer.length;
// for (let i = 0; i < bufferLength; i += blockSize) {
// let subbuffer = mergedBuffer.subarray(i, i + blockSize);
// let mp3buf = encoder.encodeBuffer(subbuffer, blockSize);
// mp3Data.push(mp3buf);
// }
// // 获取剩余的编码数据
// let mp3buf = encoder.flush();
// mp3Data.push(mp3buf);
// let end = performance.now();
// console.log(`本次合并耗时-${end - start}毫秒`);
// // 合并所有编码数据
// return new Blob(mp3Data, { type: 'audio/mpeg' });
// }
// 合并音频文件
export async function audioMerge(filePaths: string[]) {
if (!filePaths.length) {
......@@ -220,11 +175,7 @@ export async function audioMerge(filePaths: string[]) {
console.log('合并完成', blob);
return blob;
} else if (fileType == 'mp3') {
// mp3--耗时操作,放入worker中
// const blob = await mp3Worker(blobList);
// return blob;
// 通知python处理
// await pyAudioMerge(blobList);
// mp3
}
} catch (error) {
writeLog({
......
// import Lame from 'lamejs/src/js/Lame';
// import Presets from 'lamejs/src/js/Presets';
// import GainAnalysis from 'lamejs/src/js/GainAnalysis';
// import QuantizePVT from 'lamejs/src/js/QuantizePVT';
// import Quantize from 'lamejs/src/js/Quantize';
// import Reservoir from 'lamejs/src/js/Reservoir';
// import Takehiro from 'lamejs/src/js/Takehiro';
// import MPEGMode from 'lamejs/src/js/MPEGMode';
// import BitStream from 'lamejs/src/js/BitStream';
import Lame from 'lamejs/src/js/Lame';
import Presets from 'lamejs/src/js/Presets';
import GainAnalysis from 'lamejs/src/js/GainAnalysis';
import QuantizePVT from 'lamejs/src/js/QuantizePVT';
import Quantize from 'lamejs/src/js/Quantize';
import Reservoir from 'lamejs/src/js/Reservoir';
import Takehiro from 'lamejs/src/js/Takehiro';
import MPEGMode from 'lamejs/src/js/MPEGMode';
import BitStream from 'lamejs/src/js/BitStream';
// window.Lame = Lame;
// window.Presets = Presets;
// window.GainAnalysis = GainAnalysis;
// window.QuantizePVT = QuantizePVT;
// window.Quantize = Quantize;
// window.Reservoir = Reservoir;
// window.Takehiro = Takehiro;
// window.MPEGMode = MPEGMode;
// window.BitStream = BitStream;
window.Lame = Lame;
window.Presets = Presets;
window.GainAnalysis = GainAnalysis;
window.QuantizePVT = QuantizePVT;
window.Quantize = Quantize;
window.Reservoir = Reservoir;
window.Takehiro = Takehiro;
window.MPEGMode = MPEGMode;
window.BitStream = BitStream;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment