Изменение результатов аудиоисточника на 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"

0 ответов

Другие вопросы по тегам