首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >屏蔽亚马逊S3 mp3文件url和html5移动音频问题

屏蔽亚马逊S3 mp3文件url和html5移动音频问题
EN

Stack Overflow用户
提问于 2013-12-04 09:13:59
回答 1查看 931关注 0票数 0

我使用amazon s3服务器向用户提供mp3文件。但是,为了控制这些mp3文件的使用并保护真实的s3 url,我使用了一个php文件来屏蔽这个url。下面是我使用的代码:

代码语言:javascript
复制
$audioName = $_GET['p'];
require_once 'class/S3.php';

$expires = 60*60*24*30;

header("Cache-Control: public, max-age=".$expires.", pre-check=".$expires);
header("Expires: " . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');

$getPhoto = new S3(access key, secret access key);
$response = S3::getObject('bucketname', $audioName);

header('Content-Type: ' . $response->headers['type']);
header('Content-Length: ' . $response->headers['size']);
echo $response->body;

然后,在我的html方面,我使用一个简单的音频标记来播放这个文件:

代码语言:javascript
复制
<audio controls preload="none">
<source src="audiofile.php?id=1" type="audio/mpeg">
</audio>

预加载设置为none,因为我只想在用户按play之后才开始下载mp3文件。

现在的问题是(特别是移动浏览器,主要是铬移动浏览器),当用户按下play时,需要相当长的时间(大约8-10秒) mp3才能真正开始播放。不管我设置了哪个缓存控件,每次都会发生这种情况。

P.S.:我从未设计的:https://github.com/tpyo/amazon-s3-php-class中使用这个amazon类。

EN

回答 1

Stack Overflow用户

发布于 2013-12-17 19:13:50

我认为您正在下载整个文件到您的服务器之前,转身和服务的文件。您的用户将不得不等待整个文件被下载到您的服务器,然后等待足够多的文件下载到他们的机器上,然后才能开始播放,而指向S3的直接链接将允许用户进行编程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20371216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档