This commit is contained in:
mm 2024-10-30 16:22:07 +05:00
parent 198265c5fd
commit 89f642cea9

View File

@ -68,9 +68,9 @@ function addText(text) {
contentDiv.appendChild(p); contentDiv.appendChild(p);
} }
function playAudio(audioUrl, widgetID) { function playAudio(audioUrl, widgetID, callback) {
if (!audioUrl.includes("http")) { if (!audioUrl.includes("http")) {
audioUrl = "http://147.45.237.174/api/widget/media/audio/file/get/" + String(widgetID) audioUrl = "http://147.45.237.174/api/widget/media/audio/file/get/" + String(widgetID);
} }
fetch(audioUrl) fetch(audioUrl)
.then(response => { .then(response => {
@ -87,12 +87,13 @@ function playAudio(audioUrl, widgetID) {
console.error('Ошибка при воспроизведении:', error); console.error('Ошибка при воспроизведении:', error);
}); });
setTimeout(() => { audio.addEventListener('ended', () => {
audio.pause(); audio.pause();
audio.remove() audio.remove();
console.log('Воспроизведение остановлено'); console.log('Музыка закончила играть');
}, 5000); if (callback) callback(); // Вызовите callback после завершения аудио
}) });
});
} }
function playSpeech(text) { function playSpeech(text) {
@ -128,6 +129,10 @@ function playSpeech(text) {
) )
} }
function playSpeechAfterAudio(text) {
playAudio(widget.AudioUrl, widgetID, () => playSpeech(text));
}
function delay(ms) { function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms)); return new Promise(resolve => setTimeout(resolve, ms));
} }
@ -167,14 +172,13 @@ async function widgetView() {
if (widget.ImageUrl != "") { if (widget.ImageUrl != "") {
addImage(widget.ImageUrl) addImage(widget.ImageUrl)
} }
if (widget.AudioUrl) {
playAudio(widget.AudioUrl, widgetID)
}
await delay(6000);
playSpeech(donat.Text)
addText(donat.Text + " " + donat.Amount) addText(donat.Text + " " + donat.Amount)
if (widget.AudioUrl) {
playSpeechAfterAudio(donat.Text);
} else {
playSpeech(donat.Text); // Если нет аудио, просто сразу играет речь
}
await delay(widget.Duration * 1000); await delay(widget.Duration * 1000);
await endDonat(donat.ID) await endDonat(donat.ID)
} }