До этого момента в моих исследованиях я мог подавать файлы на свои динамические веб-страницы с помощью Node.js и Express следующим образом.
app.use(express.static('./public'));
и затем связываться с файлами в общей папке.
В документации Wavesurfer.js указано, что файл должен быть загружен с URL
Загрузка аудиофайла с URL:
wavesurfer.load('example/media/demo.wav');
Я не уверен, что понимаю, что это значит.или как связать файл с wavesurfer.js, используя node.js
Редактировать:
Я нашел это по ссылке Запросы перекрестного происхождения поддерживаются только дляHTTP. »Ошибка при загрузке локального файла
Node.js В качестве альтернативы, если вам требуется более адаптивная настройка и вы уже используете nodejs ...
Установитьhttp-server
, набрав npm install -g http-server
Перейдите в рабочий каталог, где живет some.html
Запустите сервер http, выполнив командуhttp-server -c-1
Это раскручивает httpd Node.js, который обслуживает файлы в вашем каталоге как статические файлы, доступные с http://localhost:8080
Не могу я достичьТо же самое с использованием экспресс?
Мой код:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="waveform"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/wavesurfer.js/1.2.3/wavesurfer.min.js"></script>
<script>
var wavesurfer = WaveSurfer.create({
container: '#waveform',
waveColor: 'violet',
progressColor: 'purple'
});
wavesurfer.load('/public/recordings/o.mp3');
</script>
</body>
</html>
Я получаю ошибки:
AudioContext не было разрешеноНачните.Он должен быть возобновлен (или создан) после пользовательского жеста на странице.
Доступ к XMLHttpRequest по адресу 'file: /// C: /public/recordings/o.mp3' из источника 'null' был заблокирован политикой CORS: Запросы между источниками поддерживаются только для схем протоколов: http, data, chrome, chrome-extension, https.