【问题标题】:how html5 <audio> tag is responded by web serversWeb 服务器如何响应 html5 <audio> 标签
【发布时间】:2016-12-30 15:53:42
【问题描述】:

嗨, 我基于一个开源 C++ 项目开发了一个简单的 Web 服务器。 在这个网络服务器中,有很多波形文件,我想通过使用 HTML 5 的标签向网络客户端显示。

我在发送到网络浏览器的 html 文件中添加了如下示例的波形文件。

<audio controls>
<source src = "sound.wav" type="audio/wave">
</audio>        

但现在我想知道当网络客户端按下播放按钮时,网络服务器如何处理标签并将流数据发送到网络客户端。

我需要在我的网络服务器中从头开始实现它。

我阅读了很多帖子,但其中大多数只是处理客户端问题。

我需要深入了解请求的服务器端是如何处理的。

最好的问候

【问题讨论】:

    标签: html audio server


    【解决方案1】:

    正如您在 MDN 文档中看到的那样 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio

    HTML 元素用于在文档中嵌入声音内容。 它可能包含一个或多个音频源,使用 src 表示 属性或元素;浏览器会选择最多 合适的。

    当网络客户端按下播放按钮时,流不会发送到网络客户端,而是在页面加载时发送(网页中的所有媒体) 您可以使用以下属性控制执行:

    自动播放

    一个布尔属性;如果指定(即使值为“false”!), 音频将尽快自动开始播放,无需等待整个音频文件完成下载。

    缓冲

    您可以读取一个属性来确定媒体的哪些时间范围已被缓冲。 此属性包含一个 TimeRanges 对象。

    预加载

    此枚举属性旨在向浏览器提供有关作者认为会带来最佳用户体验的提示。它可能具有以下值之一: none:表示不应该预加载音频; metadata:表示只获取音频元数据(例如长度); auto:表示可以下载整个音频文件,即使用户不希望使用它; 空字符串:自动值的同义词。

    【讨论】:

    • 非常感谢您的回答,但是当我用 C++ 编写项目的 Web 服务器部分时,我想知道如何将 wav 数据发送到 Web 浏览器。现在,当我发送整个波形文件时,我收到数据中止或对等断开错误。我想知道如何将波形文件发送到网络浏览器。
    【解决方案2】:

    提供文件是我打赌你已经知道的事情。为了提供音频流,有流协议。一个是 ShoutCast,这里有一个很好的 Python 示例。

    https://github.com/inforichland/PyCast

    【讨论】:

      猜你喜欢
      • 2011-04-26
      • 2016-11-04
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 2013-02-20
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多