Rails ActiveStorage audio Диапазон содержимого

Это началось как простое использование ActiveStorage, просто сохраните некоторые аудиофайлы в формате mp3 (это легко сделать) и отобразите их на сайте:

<%= audio_tag url_for(recording.audio_file), controls: true, preload: "none" %>

Я тестировал на Chrome и Firefox, и он работает, я могу воспроизводить звук без проблем столько раз, сколько захочу, но когда я тестировал его на Safari, я столкнулся с проблемой, что Safari предполагает, что сервер поддерживает Content-Range, поэтому Safari считает, что является живым потоком, и элемент html5 может воспроизводиться только один раз.

Поэтому я искал в Интернете, как это исправить, и я видел ответы, которые указывают на:

  • Веб-сервер не поддерживает его, но я использую Apache 2.4, а из 2.2 он поддерживает Content-Range по умолчанию.
  • Сафари - русификатор, который мне не помогает
  • Вы должны реализовать его на Rails, да, это может быть решением, но я проверил код для ActiveStorage ( https://github.com/rails/rails/blob/master/activestorage/lib/active_storage/service/disk_service.rb#L41) но мне пришлось бы изменить его (я обнаружил, что этот ответ направляет поток медиафайлов, принимает запрос диапазона байтов с помощью метода send_data или send_file), что кажется полезным, но может показаться, что это должно быть проще и не требует от меня изменения реализация ActiveStorage.
  • Таким образом, последняя возможность состоит в том, что я не понимаю концепцию того, как все сплетено вместе, и ответ, вероятно, прост и легко реализуем, поэтому в Интернете нет информации, потому что это очевидно, но я не могу понять это из.

У любого есть указания относительно того, как использовать ActiveStorage для хранения и предоставления аудио, которое может быть представлено с использованием аудио-тега html5, который работает для Chrome, FireFox и Safari.

Спасибо за вашу помощь.

0 ответов

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