我目前正在允许用户通过充当s3的代理来收听原始音频文件:
$result = $s3Client->getObject(array(
'Bucket' => "Bucket",
'Key' => "Key
));
然后只需设置适当的标题并将数据放入正文中。
虽然它有两个缺点:
1)大文件存在高延迟,因为从s3下载需要时间
2)Chrome会在自己的用户界面中呈现音频,但当用户尝试使用滚动条时,会发送一个请求,其中包含未处理的“范围”标题。
有没有人有更好的解决方案来处理这两个问题?我看过Amazon S3 Stream Wrapper,但我不知道如何将音频流回浏览器。
答案 0 :(得分:1)
使用S3直接为您的媒体提供服务。
如果您希望限制访问权限,可以使用S3客户端预先签名URL。这些网址可以设置为仅运行几分钟。
如果由于某种原因您无法直接链接到S3,则可以在当前脚本中重定向到S3网址。
答案 1 :(得分:0)
“流”音频与“播放”音频(渐进式下载)不同。
真正的流传输意味着将.mp3(或.mp4)转换为“流”,如.m3u8和.ts文件(如果您正在使用HLS流传输)。您可以使用AWS MediaConvert,将其转换为流,然后使用CloudFront交付到您的网站,然后使用Videojs之类的播放器进行播放。
如果您只是想将S3帐户(渐进式下载)中的音频/视频/ PDF文件“提供”到您的网站,请创建签名的URL,然后将其用作音频/视频播放器的源。
您还可以使用S3MediaVault which does both Audio and Video Streaming之类的WordPress插件以及渐进式下载。
-拉维·贾戈帕尔(Ravi Jayagopal)