最近项目里需要这么一个东西,但是找遍了网上也没有合适的带波形图的播放器。
曾经找到过非常接近的解决方案,最后都不能用:
- media player,如果机器安装了高版本的media player是可以显示波形图的,优点是客户端一般不需要额外下载(因为调用的是windows下的wmp.dll),缺点是如果是低版本的media player就没法显示波形图,并且即使是高版本的,有时候也不会显示波形图,原因未知…
- flash播放器,这个网上有很多例子,但是有大部分的波形图都是假的,就是放了一个抖动的动画而已…另外有一些,则是风格原因不太合适使用。
所以最后自己做了一个,非常简单,只有一个视频区域用来显示波形图,提供了播放,暂停,停止3个接口,效果如图
其中0-256像素是左声道的波形图,256-512是右声道的波形图,超过了512像素的话波形图就会从头开始循环。
实现原理主要是使用了as3里的SoundMixer.computeSpectrum,然后根据stage大小绘制曲线。
缺点是不支持wav,尝试使用了一个flash的播放wav库,但是内存开销太大,放弃了,如果需要播放wav可以先用ffmpeg转换成MP3。
swf下载地址
简单接口:播放:playAudio,暂停:pauseAudio,停止:stopAudio