soundcloud播放器是如何编程的?

时间:2012-09-04 12:38:07

标签: html5 soundcloud

这可能是一个太宽泛的问题,但是soundcloud实际上是如何编程的?

更具体地说,

  1. 用什么语言编程呢?

  2. 如何显示频率数据?

  3. 如果用户上传的文件格式与MP3不同,是MP3转换还是按原样播放?如果是前者,转换是如何工作的?

  4. 它如何“以图形方式”出现在浏览器上?它也是HTML 5的东西,我什么都不知道?

  5. 我是soundcloud的忠实粉丝,不禁想知道所有这些是如何工作的! 请帮帮我:))

2 个答案:

答案 0 :(得分:40)

SoundCloud开发人员,

  1. API和当前网站是使用Rails构建的。有关架构/基础架构及其在过去5年中的演变方式的信息,请查看Evolution of SoundCloud's Architecture。网站的"next" version(仍处于私有测试阶段)完全使用Javascript构建,只使用API​​获取其数据。 Building The Next SoundCloud中提供了更多详细信息。

  2. 我不确定使用哪种语言/库来处理音频,但很多音频库确实提供频率数据,我们只是提取它。

  3. 用户可以上传AIFF, WAVE (WAV), FLAC, OGG, MP2, MP3, AAC, AMR or WMA files。原始文件与下载选项完全一致,但对于网站上的流媒体,它们会转换为128kbps的MP3文件。再说一次,我不确定软件/库,但我很确定它会变成ffmpeg。

  4. 为了显示波形,在上传时处理音频文件时在后端,波形数据被保存到PNG文件中。在当前版本的网站上,我们只需加载该文件。在接下来,处理png以返回原始数据,然后将其绘制到所需精确尺寸的画布上(这使图像保持清晰)。我们目前正在尝试以JSON格式获取波形数据,以加快此过程。

答案 1 :(得分:0)

我正在复制DavidNoëlsomewhere else在2010年发布的以下信息。

  

Web层:Varnish,nginx,haproxy,thin

     

数据管理:Cassandra,MongoDB,mySQL主/从群集,memcached

     

Web框架:Ruby on Rails

     

CDN:Akamai和Edgecast

     

转码/存储:AWS EC2 / S3

相关问题