Использование аудио и видео тега в азоте
Все еще работая на своем личном веб-сервере, я пытался использовать теги html5 audio и video в Nitrogen.
Поскольку нет ни записей #audio, ни #video, я решил вставить html-текст непосредственно на страницу, созданную азотом, результат выглядит так:
<audio controls preload="metadata"><source src="../../My Music/subdir/song.ogg" type="audio/ogg" /source>audio tags not supported</audio>
В моем понимании это должно работать, потому что аудио-тег должен интерпретироваться непосредственно браузером клиента, и в коде нет ни идентификатора азота, ни наблюдателя событий.
Но когда я просматриваю этот код из Firefox, я кратко вижу, как открывается элемент управления, а затем аудио элемент просто исчезает.
Если я копирую, вставляю весь код, сгенерированный азотом (отображаю html исходную страницу, копирую и вставляю в файл, находящийся в начале проекта азотной печати) и открываю его с помощью браузера, он работает нормально. Относительный путь верен, при условии, что поисковая статистика в азоте проектируется. Я пробовал и абсолютный путь, но безуспешно.
Я не знаю
- если он создает имя файла в форме ".._.._My music_subdir_song.ogg", как это делает азот для анализа URL,
- или если он использует другой каталог, чтобы начать путь,
- или если это просто не работает так, как я думаю.
- ...
Изменить: некоторая дополнительная информация:
Я сделал следующие изменения:
создайте один каталог, включая несколько файлов ogg, в каталоге site/static + переместите статический файл test.html на сайт /static. Если я открою напрямую test.html -> хорошо. если я перенаправить с моего сайта -> не в порядке.
тот же тест с копией каталога в корне приложения Nitrogen и доступом с моего веб-сайта -> не в порядке
Поскольку информация на веб-странице неоднозначна, я изменил test.html для доступа к файлу, который не существует на моем ПК -> такое же поведение.
Я думаю, что я буду использовать отладчик, чтобы понять, как обрабатывается запрос, продолжение следует...
Изменить 2:
используя отладчик, я могу убедиться, что wf_core:run_catched() вызывается несколько раз. Первый вызов - это обработка события на моей странице, которое перенаправляет в статический файл.
Второй раз обработать сам статический html-файл.
В третий раз обработать finish_static_request() с путем, равным my_music / song.ogg, и я теряюсь при обработке ответа. Другой wf_core:run_catched() был вызван параллельно, но я не следовал за ним...
Мне удалось убедиться, что к файлу можно получить доступ: я добавил несколько звуковых тегов в html-файлы и смог "загрузить" существующие файлы с помощью плагина DownloadHelper Firefox.
Теперь я понимаю, что путь правильный (по крайней мере, когда я помещаю файлы в подкаталог site/static), сервер может извлекать файлы и отправлять их, браузер распознает теги аудио и видео, но ссылку между встроенным аудио / видео ридером и файлами теряется, хотя я добавил определение типа внутри аудио тега.
Любая идея продолжить?
Изменить 3:
Наконец то я понял. Как предположил Чопс, мне нужно было войти в конфигурацию сервера inets, чтобы не определять путь, а определить связь типов. Я добавил следующие определения в etc/inets_httpd.erlenv, и это работает.
{mime_types, [
{"css", "text/css"},
...
{"ogg","audio/ogg"},
{"webm","video/webm"}
]}
: О)
1 ответ
На основании содержания url
Атрибут ("../../My Music/subdir/song.ogg"), проблема, когда он подается от Nitrogen, заключается в том, что запрос (при условии, что вы используете значение по умолчанию 127.0.0.1:8000) для аудио будет быть на URL "http://127.0.0.1:8000/My Music/subdir/song.ogg"
То, что вы хотите сделать, если вы используете стандартную установку Nitrogen, - это поместить нужные файлы песен в site/static
каталог, возможно, в подкаталоге "Песни".
Затем измените url
атрибут "/songs/mysong.ogg" (или любой другой путь внутри site/static
ты использовал).
Примечание. В зависимости от выбора вашего сервера (например, Webmachine), вам может потребоваться изменить специфический файл конфигурации сервера, чтобы указать ему обрабатывать новый каталог для статических путей, для получения справки проверьте документацию по настройке на сайте Nitrogen.
Кроме того, нет ничего особенного в выводе необработанного HTML в Nitrogen. Насколько я понимаю, проблема здесь действительно связана с путями запросов, отправляемых на сервер.