它最初只是用于ActiveStorage,只是以mp3格式存储一些音频文件(很容易完成)并在网站上显示:
<%= audio_tag url_for(recording.audio_file), controls: true, preload: "none" %>
我在Chrome和Firefox上测试过它可以工作,我可以根据需要多次播放音频,但是当我在Safari上测试时,我遇到了Safari假设服务器支持Content-Range的问题,所以Safari认为它是一个直播,html5元素只能播放一次 .
所以我一直在互联网上搜索如何解决这个问题,我看到的答案指出:
-
The webserver doesn't support it 但我使用的是Apache 2.4,而2.2版本默认支持Content-Range .
-
Safari is rubish 这对我没有帮助
-
You should implement it on Rails 好吧,这可能是一个解决方案,但我检查了ActiveStorage的代码(https://github.com/rails/rails/blob/master/activestorage/lib/active_storage/service/disk_service.rb#L41),但我必须改变它(我发现这个答案rails media file stream accept byte range request through send_data or send_file method)似乎有帮助,但它似乎应该更容易,不应该'我要求我改变ActiveStorage的实现 .
-
所以最后一种可能性是我显而易见但我无法弄明白 .
任何人都有关于如何使用ActiveStorage存储和提供可以使用适用于Chrome,FireFox和Safari的html5音频标签呈现的音频的任何指示 .
谢谢你的帮助 .