流媒体音频如何在网络上运行?

时间:2015-01-11 02:07:46

标签: audio web browser audio-streaming

我意识到这是一个非常广泛的问题。我对音频数据从托管音频文件的服务器到我的声卡的整个过程的高级概述感兴趣。

我认为在这个过程中至少有三个有趣的接口点:

  1. 音频数据如何从服务器传输到客户端

  2. 音频数据到达客户端后,客户端代码使用哪些Web API来指示浏览器播放

  3. 在这些Web API的实现中,浏览器使用什么操作系统API 来实际播放音频? (我主要对Windows和Linux感兴趣。)

  4. 我意识到每个点可能有几种选择。我正在寻找最常用技术的高级概述,最好是为每个技术提供更多资源的链接。

1 个答案:

答案 0 :(得分:1)

(How is the audio data transferred from the server to the client ?)
  • 一个策略:Web套接字 - 服务器和浏览器打开这个双向通道,它可以传输一系列二进制类型的数组,供浏览器上的javascript使用 - 缺点是浏览器必须上下文切换远离它的行为(渲染音频)为从服务器接收的消息提供服务 - 如果您不在浏览器端使用Web Worker,这可能会导致音频渲染出现故障

(what web APIs does client code use to instruct the browser to play it?)
  • Web Audio API - 如果您将Web Socket聊天工具卸载到Web Worker
  • ,则效果很好

In the implementation of these web APIs, what operating system APIs does the browser use to actually play the audio? (I'm primarily interested in Windows and Linux)
  • 美丽是,你可以不留意这个问题,因为它对手头的任务没有任何影响,除非我在你的问题中遗漏了一些议程

这只是我的观点(我编写了一个实现上述方法的系统),但是我也很好奇其他人......说SoundCloud ......实现了它的流音频,特别是单线程浏览器问题? ??