commit 28/10/2025
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
|
||||
window.lastplaybutton = null;
|
||||
|
||||
/**
|
||||
* Load setting language dropdown
|
||||
*/
|
||||
@@ -146,6 +148,50 @@ function download(path, filename) {
|
||||
alert("Error downloading paging result file: " + errdata.message);
|
||||
});
|
||||
}
|
||||
function play(path, filename, cbplay = null) {
|
||||
let playurl = `/api/FileManager/${path}`;
|
||||
let reqdata = { filename: filename };
|
||||
fetch(playurl, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(reqdata)
|
||||
}).then(response => {
|
||||
if (!response.ok) {
|
||||
throw new Error("Network response was not ok");
|
||||
}
|
||||
return response.blob();
|
||||
}).then(blob => {
|
||||
const url = window.URL.createObjectURL(blob);
|
||||
const player = document.getElementById("audioplayer");
|
||||
if (player) {
|
||||
player.pause();
|
||||
if (window.lastplaybutton){
|
||||
let $icon = $(window.lastplaybutton).find("i");
|
||||
$icon.removeClass("fa-stop").addClass("fa-play");
|
||||
|
||||
}
|
||||
player.src = url;
|
||||
player.load();
|
||||
$("#audioplayer").show();
|
||||
player.play();
|
||||
player.onplay = () => {
|
||||
console.log("Playing audio file: " + filename);
|
||||
if (cbplay && typeof cbplay === "function") {
|
||||
cbplay();
|
||||
}
|
||||
}
|
||||
player.onended = () => {
|
||||
console.log("Finished playing audio file: " + filename);
|
||||
window.URL.revokeObjectURL(url);
|
||||
};
|
||||
player.onerror = (e) => {
|
||||
alert("Error playing audio file: " + filename);
|
||||
};
|
||||
}
|
||||
|
||||
}).catch(errdata => {
|
||||
alert("Error playing soundbank result file: " + errdata.message);
|
||||
});
|
||||
}
|
||||
|
||||
function get_pagingresult_files() {
|
||||
const url = `FileManager/PagingResultList`;
|
||||
@@ -158,12 +204,32 @@ function get_pagingresult_files() {
|
||||
let $tr = $("<tr></tr>");
|
||||
let $tdtitle = $("<td></td>").text(filename);
|
||||
// add button inside td to download the file
|
||||
let $btndownload = $("<button></button>").text("Download").addClass("btn btn-primary");
|
||||
let $btndownload = $("<button></button>").addClass("btn btn-primary").html("<i class='fa-solid fa-download'></i>");
|
||||
let $btnplay = $("<button></button>").addClass("btn btn-primary").html("<i class='fa-solid fa-play'></i>");
|
||||
$btndownload.on('click', function () {
|
||||
download("DownloadPagingResultFile", filename);
|
||||
});
|
||||
$btnplay.on('click', function () {
|
||||
let $icon = $(this).find("i");
|
||||
if ($icon.hasClass("fa-stop")) {
|
||||
// stop playback
|
||||
const player = document.getElementById("audioplayer");
|
||||
if (player) {
|
||||
player.pause();
|
||||
window.URL.revokeObjectURL(player.src);
|
||||
window.lastplaybutton = null;
|
||||
$icon.removeClass("fa-stop").addClass("fa-play");
|
||||
}
|
||||
} else {
|
||||
// start playback
|
||||
play("PlayPagingResultFile", filename, () => {
|
||||
window.lastplaybutton = $btnplay;
|
||||
$icon.removeClass("fa-play").addClass("fa-stop");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
let $tdbutton = $("<td></td>").append($btndownload).addClass("text-center");
|
||||
let $tdbutton = $("<td></td>").append($btndownload).append($btnplay).addClass("text-center");
|
||||
$tr.append($tdtitle);
|
||||
$tr.append($tdbutton);
|
||||
$("#tbody_resultpaging").append($tr);
|
||||
@@ -184,12 +250,33 @@ function get_soundbankresult_files() {
|
||||
let filename = file.split(/[/\\]/).pop();
|
||||
let $tr = $("<tr></tr>");
|
||||
let $tdtitle = $("<td></td>").text(filename);
|
||||
// add button inside td to download the file
|
||||
let $btndownload = $("<button></button>").text("Download").addClass("btn btn-primary");
|
||||
let $tdbutton = $("<td></td>").append($btndownload).addClass("text-center");
|
||||
// add button inside td to download and play the file
|
||||
let $btndownload = $("<button></button>").addClass("btn btn-primary").html("<i class='fa-solid fa-download'></i>");
|
||||
let $btnplay = $("<button></button>").addClass("btn btn-primary").html("<i class='fa-solid fa-play'></i>");
|
||||
let $tdbutton = $("<td></td>").append($btndownload).append($btnplay).addClass("text-center");
|
||||
|
||||
$btndownload.on('click', function () {
|
||||
download("DownloadSoundbankResultFile", filename);
|
||||
});
|
||||
$btnplay.on('click', function () {
|
||||
let $icon = $(this).find("i");
|
||||
if ($icon.hasClass("fa-stop")) {
|
||||
// stop playback
|
||||
const player = document.getElementById("audioplayer");
|
||||
if (player) {
|
||||
player.pause();
|
||||
window.URL.revokeObjectURL(player.src);
|
||||
window.lastplaybutton = null;
|
||||
$icon.removeClass("fa-stop").addClass("fa-play");
|
||||
}
|
||||
} else {
|
||||
// start playback
|
||||
play("PlaySoundbankResultFile", filename, () => {
|
||||
window.lastplaybutton = $btnplay;
|
||||
$icon.removeClass("fa-play").addClass("fa-stop");
|
||||
});
|
||||
}
|
||||
});
|
||||
$tr.append($tdtitle);
|
||||
$tr.append($tdbutton);
|
||||
$("#tbody_resultsoundbank").append($tr);
|
||||
@@ -204,6 +291,7 @@ function get_soundbankresult_files() {
|
||||
|
||||
$(document).ready(function () {
|
||||
console.log("filemanagement.js xx loaded");
|
||||
|
||||
load_setting_category();
|
||||
load_setting_language();
|
||||
load_setting_voice();
|
||||
|
||||
Reference in New Issue
Block a user