dev
This commit is contained in:
parent
198265c5fd
commit
89f642cea9
@ -68,31 +68,32 @@ 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 => {
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
throw new Error('Ошибка сети: ' + response.statusText);
|
throw new Error('Ошибка сети: ' + response.statusText);
|
||||||
}
|
}
|
||||||
return response.blob();
|
return response.blob();
|
||||||
})
|
})
|
||||||
.then(blob => {
|
.then(blob => {
|
||||||
const url = URL.createObjectURL(blob);
|
const url = URL.createObjectURL(blob);
|
||||||
const audio = new Audio(url);
|
const audio = new Audio(url);
|
||||||
|
|
||||||
audio.play().catch(error => {
|
audio.play().catch(error => {
|
||||||
console.error('Ошибка при воспроизведении:', error);
|
console.error('Ошибка при воспроизведении:', error);
|
||||||
|
});
|
||||||
|
|
||||||
|
audio.addEventListener('ended', () => {
|
||||||
|
audio.pause();
|
||||||
|
audio.remove();
|
||||||
|
console.log('Музыка закончила играть');
|
||||||
|
if (callback) callback(); // Вызовите callback после завершения аудио
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
audio.pause();
|
|
||||||
audio.remove()
|
|
||||||
console.log('Воспроизведение остановлено');
|
|
||||||
}, 5000);
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user