首页>Program>source

希望有人可以帮助我解决这个问题。

我正在玩一个将音频流传输到客户端的node.js服务器,我想创建一个HTML5播放器.现在,我正在使用分块编码从节点流式传输代码,如果直接访问URL,它会很好用。

我想做的就是使用HTML5 <audio>嵌入它 标签,就像这样:

<audio src="http://server/stream?file=123">

其中 /stream 是节点服务器流式传输MP3的端点. HTML5播放器在Safari和Chrome中可以很好地加载,但是它不允许我搜索,Safari甚至说这是"实时广播".在 /stream的标题中 ,包括文件大小和文件类型,响应正确结束。

关于如何解决这个问题的任何想法? 我当然可以一次发送整个文件,但是播放器会等到整个文件下载完毕后才开始播放-我宁愿将其流式传输。

最新回答
  • 2天前
    1 #

    确保服务器接受Range请求,您可以 检查是否 Accept-Ranges 在标题中.在jPlayer中,这是webkit(特别是Chrome)浏览器在解决功能和寻求功能时的常见问题。

    您可能没有使用jPlayer,但官方网站上的服务器响应信息可能会有一定用处。

    http://www.jplayer.org/latest/developer-guide/#jPlayer-server-response

  • 2天前
    2 #

    在这里看看http://www.scottandrew.com/pub/html5audioplayer /,我用了它,它在下载文件时播放.它稍稍等待缓冲区,然后播放.从来没有尝试过,但是如果可以的话,我将首先尝试在他的代码中设置" aud.currentTime"。

    祝你好运

  • 2天前
    3 #

    您是否要发送一个接受范围(RFC 2616,第14.5节)响应标头?

  • 2天前
    4 #

    ,但是我遇到了同样的问题。 必须为媒体文件响应设置一些标题。

    例如:

    Accept-Ranges:bytes
    Content-Length:7437847
    Content-Range:bytes 0-7437846/7437847
    

    然后音频标签将能够找到

  • 2天前
    5 #

    据我所知,您希望播放器允许用户跳转到尚未缓冲的音频/视频部分,例如 Vimeo / youTube播放器可以。.我不确定这是否可行,因为我看了html5中间元素的一些示例,但它们只是不允许我寻找无缓冲的部分:(

    如果您想浏览缓冲部分-那就没问题了.实际上,据我所知,您正在这里为自己制造问题.您想要流式传输文件,而这会使播放器认为您有某种实时流式传输.如果您只是直接发送文件-就不会出现此问题,因为播放器可以在加载整个文件之前开始播放.这在音频和视频元素上都可以正常工作,并且我已经在Chrome和FF中确认了此行为:)

    希望这会有所帮助!

  • ajax:如果用户在页面加载完成之前离开页面,则触发jQuery ajaxError()处理程序
  • 带有事件对象的Python线程