Изменение результатов аудиоисточника на 412 Precondition Error
Я создаю аудиофайл с помощью Amazon Polly, а затем сохраняю этот аудиофайл в подпапку, затем сохраняю путь и затем изменяю аудиоисточник аудиоэлемента в моем JavaScript.
Всякий раз, когда вызывается код пути audio.src =, он выдает ошибку предварительного условия 412. Я попытался удалить только эту строку, и ошибка не будет выдана, однако мне нужно установить источник звука, поэтому я не могу удалить его полностью.
Также стоит отметить, что имена аудиофайлов каждый раз генерируются случайным образом с использованием "md5(uniqid())" на моей странице PHP. Это необходимо для того, чтобы никакие два пользователя не могли слышать один и тот же звук, который кэшируется сервером.
Любая помощь будет принята с благодарностью, заранее спасибо.
//I have also tried using:
$("#audio").prop("src", path);
//Storing it into a function
function changeAudioSource(path){
var audio = document.getElementById('audioPlayer');
$(audio).prop('src',path);
}
//The AJAX request
$.ajax({
url: 'lib/helpers/Polly.helper.php',
method: "POST",
data: speakData,
success: function(data){
console.log(data);
speakerIsSpeaking = true;
showAudio();
var audio = document.getElementById('audioPlayer');
audio.src = data;
audio.play();
},
error: function(error){
console.log(error);
}
});
// The function in the Polly.helper.php that generates the audio file
function speak($pronunciation = "", $voice_id = "Joanna", $polly){
$result = $polly->synthesizeSpeech([
'OutputFormat' => 'mp3', // REQUIRED
'Text' => "<speak>" . $pronunciation . "</speak>", // REQUIRED
'VoiceId' => $voice_id, // REQUIRED
'TextType' => 'ssml',
]);
$newData = $result->get('AudioStream')->getContents();
$filename = md5(uniqid());
$myfile = fopen("../../audio/$filename.mp3", "w");
fwrite($myfile, $newData);
fclose($myfile);
return "audio/$filename.mp3";
}
Firefox: не удалось загрузить HTTP со статусом 412. Ошибка загрузки медиаресурса "absolute_link_to_mp3". NotSupportedError: Медиа-ресурс, указанный атрибутом src или назначенным объектом медиа-провайдера, не подходит.
Chrome: ПОЛУЧИТЬ "absolute_link_to_mp3" 412
Edge: HTTP412: PRECONDITION FAILED - Предварительное условие, заданное в одном или нескольких полях заголовка запроса, оценивается как ложное при тестировании на сервере. GET - "absolute_link_to_mp3"