Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion electron/main/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import { app, BrowserWindow, shell, ipcMain } from "electron";
import { release } from "os";
import { join } from "path";

import sh from "any-shell-escape";
import { exec } from "child_process";
// const {exec} = require('child_process')
// Disable GPU Acceleration for Windows 7
//if (release().startsWith("6.1")) app.disableHardwareAcceleration();
app.disableHardwareAcceleration();
Expand Down Expand Up @@ -134,3 +136,35 @@ ipcMain.handle("open-win", (event, arg) => {
});
const ElectronStore = require("electron-store");
ElectronStore.initRenderer();

const ffmpegPath = join(ROOT_PATH.public, "ffmpeg.exe");
const dp = "C:\\Users\\lunan\\Desktop\\";
ipcMain.on("ffmpeg", (event) => {
// const makeMp3 = sh([
// ffmpegPath,
// "-i",
// "C:\\Users\\lunan\\Desktop\\public_flame.avi",
// "C:\\Users\\lunan\\Desktop\\public_flame.mp4",
// ]);
const args = [
ffmpegPath,
"-i",
dp + "cq.mp3",
"-i",
dp + "16.mp3",
"-filter_complex",
"[1:a]aloop=loop=-1:size=2e+09[out];[out][0:a]amix",
dp + "out.mp3",
];
const makeMp3 = sh(args);
console.log(sh.msg(args));

exec(makeMp3, (err) => {
event.reply("msg_ffmpegr", err);
if (err) {
console.error(err);
} else {
console.info("done!");
}
});
});
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,14 @@
"vue"
],
"dependencies": {
"any-shell-escape": "^0.1.1",
"axios": "^0.27.2",
"child_process": "^1.0.2",
"electron-store": "^8.0.2",
"element-plus": "2.2.9",
"ffmpeg-static": "^5.0.2",
"nodejs-websocket": "^1.7.2",
"pinia": "^2.0.17",
"uuid": "^8.3.2"
}
}
}
Binary file added public/ffmpeg.exe
Binary file not shown.
7 changes: 7 additions & 0 deletions src/components/configpage/ConfigPage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@
<el-button type="warning" @click="openConfigFile"
><el-icon><Document /></el-icon>打开配置文件</el-button
>
<el-button type="warning" @click="test"
><el-icon><Document /></el-icon>test</el-button
>
</el-form>
<Donate></Donate>
</div>
Expand All @@ -93,6 +96,10 @@ const store = new Store();
const ttsStore = useTtsStore();
const { config } = storeToRefs(ttsStore);

const test = () => {
ttsStore.ffmpegTest();
};

const handleDelete = (index: any, row: any) => {
delete config.value.formConfigJson[row.tagName];
store.set("FormConfig", config.value.formConfigJson);
Expand Down
11 changes: 11 additions & 0 deletions src/store/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
import { defineStore } from "pinia";
import getTTSData from "./play";
import { ElMessage } from "element-plus";

const { ipcRenderer } = require("electron");
const fs = require("fs");
const path = require("path");
const Store = require("electron-store");
const store = new Store();

// 定义并导出容器,第一个参数是容器id,必须唯一,用来将所有的容器
// 挂载到根容器上
export const useTtsStore = defineStore("ttsStore", {
Expand Down Expand Up @@ -181,5 +184,13 @@ export const useTtsStore = defineStore("ttsStore", {
});
},
tts() {},
async ffmpegTest() {
const result = await ipcRenderer.send("ffmpeg");
ipcRenderer.on("msg_ffmpegr", (event: any, param: any) => {
console.log("msg_ffmpegr");
console.log("param", param);
console.log(event.sender);
});
},
},
});
Loading