На моем сайте WordPress у меня есть форма, которая преобразует текст в аудио, используя AJAX и PHP. Имя файла остается неизменным при обновлении преобразованного текста, просто воссоздает файл.
Кажется, все работает нормально, за исключением того, что воспроизводимый источник звука не перезагружается / не обновляется при обновлении текста.
Кнопка загрузки по умолчанию дает мне обновленный файл, и если я обновляю всю страницу, я могу только тогда услышать воспроизведение обновленного файла.
Мой код (упрощен для актуальности) -
jQuery(document).on('click', '#savetext', function(e) {
e.preventDefault();
var myVideo = $('#player');
var path = $("#path").val();
myVideo.src = path;
$.ajax({
data: {
action: 'polly_pros',
pollytext: txt,
rate: rate,
voice: voice
},
type: 'post',
url: polpro.ajax_url,
cache: false,
success: function(data) {
console.log(data);
myVideo.load();
myVideo.get(0).play();
},
error: function() {
console.log("Error");
}
});
});
<audio id="player" controls>
<source id="audiosource" src="<?php echo $thepath; ?>" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
<textarea name="pollytext" id="pollytext"></textarea>
<button type="submit" id="savetext" name="savetext">save text</button>
Как сделать так, чтобы при обновлении файла воспроизводился звук?
UPDATE
Я попробовал следующее предложение, но оно не устранило проблему -
$.ajax ({
data: {
action: 'polly_pros',
pollytext: txt,
rate: rate,
voice: voice
},
type: 'post',
url: polpro.ajax_url,
cache: false,
success: function(data) {
console.log(data);
myVideo.src = path+"&rnd="+new Date().getTime();
myVideo.load();
myVideo.get(0).play();
},
error: function() {
console.log("Error");
}
});