我正在尝试嵌入一个HTML5音频元素,指向由PHP文件提供的MP3或OGG数据.当我在Safari中查看页面时,会显示控件,但UI会显示"直播".单击播放时,音频将按预期启动.但是,一旦结束,我就无法通过点击播放再次开始播放.即使在audio元素上使用JS API并将currentTime设置为0也会因索引错误异常而失败.
我怀疑PHP脚本中的标题是问题,特别是缺少内容长度.但事实并非如此.响应头包括适当的Content-Length以指示音频具有有限的大小.此外,一切都在Firefox 3.5+中按预期工作.我可以多次点击音频元素上的播放来听到声音重播.
如果我从等式中删除PHP脚本并提供MP3文件的静态副本,那么在Safari中一切正常.
这是否意味着Safari使用查询参数处理音频src URL与使用查询参数的URL不同?有人有幸运气吗?
我的简单示例页面是:
<!DOCTYPE html>
<html>
<head></head>
<body>
<audio controls autobuffer>
<source src="say.php?text=this%20is%20a%20test&format=.ogg" />
<source src="say.php?text=this%20is%20a%20test&format=.mp3" />
</audio>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
来自PHP脚本的HTTP标头:
HTTP/1.x 200 OK
Date: Sun, 03 Jan 2010 15:39:34 GMT
Server: Apache
X-Powered-By: PHP/5.2.10
Content-Length: 8993
Keep-Alive: timeout=2, max=98
Connection: Keep-Alive
Content-Type: audio/mpeg
Run Code Online (Sandbox Code Playgroud)
来自直接文件访问的HTTP标头:
HTTP/1.x 200 OK
Date: Sun, 03 Jan 2010 20:06:59 GMT
Server: Apache
Last-Modified: Sun, 03 Jan 2010 03:20:02 GMT
Etag: "a404b-c3f-47c3a14937c80"
Accept-Ranges: bytes
Content-Length: 8993
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive …Run Code Online (Sandbox Code Playgroud) 是否可以使用HTML5播放shoutcast/icecast流?
如果是这样,我该如何实施呢?
我正在创建自己的音频,没有浏览器的控件.
<audio src="http://50.7.98.194:8081/~dl3/cgi-bin/dl.cgi/bqmu5mltxcqy43mxecgo4gnw743qr7fd7io22q5xj4/gl1mwvp6b326.mp3" id="audio">
</audio>
Run Code Online (Sandbox Code Playgroud)
我有这些功能,点击一些按钮时调用:
function play()
{
audio.play();
}
function play()
{
audio.pause
}
function stop()
{
audio.pause();
audio.src = audio.src;
}
Run Code Online (Sandbox Code Playgroud)
但就目前而言,我只能重现mp3或ogg文件,但不能播放实时流式广播.我读了一些插件,但我需要用纯html5来做.
请问你能帮帮我吗?非常感谢,