У меня есть приложение для электронной реакции, в котором я воспроизводю аудиофайлы, используя аудио элемент javascript. У меня есть что-то вроде ниже. Однако, хотя я могу подтвердить, что аудиофайл на локальном диске изменяется после передачи, звук, воспроизводимый через приложение, не будет обновляться в течение 30 секунд.
playAudio = (path) => {
this.audio = new Audio()
this.audio.src = filepath
this.audio.play()
}
this.playAudio('C:\Users\User\Documents\audio.mp3')
request.post({url: 'http://localhost:8080/requestAudio', body: object},
function(err, response, body) {
//do stuff
}
})
.pipe(fs.createWriteStream(`C:\Users\User\Documents\audio.mp3`)
.on('finish', () => {
this.playAudio('C:\Users\User\Documents\audio.mp3')
}
)
Итак, мне было интересно, существует ли какой-то механизм кэширования, связанный с электроном или узлом, который захватывает один и тот же файл из кэша, не проверяя, отличается ли содержимое файла.
Я пытался отключить кэш на вкладке сети электронного отладчика Chrome, который не
работа.
Другие модули аудиопроигрывателя npm также работают аналогично.
В качестве альтернативы, я мог бы просто добавить какой-либо номер к имени файла всякий раз, когда новый файл с таким же именем передается по каналу, и получать самые последние при очистке старых.
Но я бы предпочел иметь уникальные файлы для каждого имени файла.