wavesurfer.js是一款基于HTML5 canvas和Web Audio的音频播放器插件。通过wavesurfer.js你可以使用它来制作各种HTML5音频播放器,它可以在各种支持 Web Audio 的浏览器中工作,包括 Firefox, Chrome, Safari, Mobile Safari 和 Opera浏览器。
创建实例对象:
var wavesurfer = Object.create(WaveSurfer);
通过一个容器对象来初始化:
wavesurfer.init({ container: '#wave', waveColor: 'violet', progressColor: 'purple' });
调用事件:
wavesurfer.on('ready', function () { wavesurfer.play(); });
通过URL调用一个audio文件:
wavesurfer.load('example/media/demo.wav');
参数 | 类型 | 默认值 | 描述 |
audioContext | string | null | 使用以前初始化的AudioContext 或留空。 |
audioRate | float | 1 | 播放音频的速度,数值越小越慢。 |
backend | string | WebAudio | WebAudio 或AudioElement 。多数情况下你不用手动设置该参数。AudioElement 是在浏览器不支持时的一个回退。 |
container | mixed | none | 用于绘制waveform的HTML元素的CSS选择器。这个参数为必写参数。 |
cursorColor | string | #333 | 音频线头部的光标指示的颜色。 |
cursorWidth | integer | 1 | 单位像素。 |
fillParent | boolean | true | 是否填充容器或只是通过minPxPerSec 来适应容器。 |
height | integer | 128 | waveform的高度,单位像素。 |
hideScrollbar | boolean | false | 是否显示水平滚动条。 |
interact | boolean | true | 初始化时是否可以使用鼠标来交互。你可以在后面随时修改该参数。 |
minPxPerSec | integer | 50 | Minimum number of pixels per second of audio. |
pixelRatio | integer | window.devicePixelRatio | 设置为1可以更快的渲染。 |
progressColor | string | #555 | The fill color of the part of the waveform behind the cursor. |
scrollParent | boolean | false | Whether to scroll the container with a lengthy waveform. Otherwise the waveform is shrunk to the container width |
skipLength | float | 2 | skipForward() 和skipBackward() 方法每秒钟skip的数量。 |
waveColor | string | #999 | The fill color of the waveform after the cursor. |
所有的方法都是公开的,下面是一些常用的方法:
Blob
或file
对象中调用音频文件。start
和end
可以指定一个音频播放范围。[0..1]
。(0 = silent, 1 = maximum)skipLength
秒。skipLength
秒。scrollParent
。你可以使用setFilter()
方法在graph中插入你自己的Web Audio节点:
var lowpass = wavesurfer.backend.ac.createBiquadFilter(); wavesurfer.backend.setFilter(lowpass);
WaveSurfer音频播放器的常用事件有:
[1..100]
和一个事件对象。MouseEvent
对象。ScrollEvent
对象。[0..1]
。Region
对象。Region
对象。Region
对象和一个MouseEvent
对象。Region
对象和一个MouseEvent
对象。Region
对象和一个MouseEvent
对象。Region
对象和一个MouseEvent
对象。Region
对象。Region
对象。Region
对象。Regions用于音频播放器waveform视觉效果部分,可以用它来播放和循环音频文件。Regions可以被拖拽和改变尺寸大小。
一般通过CSS文件来定制样式效果,使用选择器.wavesurfer-region
和.wavesurfer-handle
。
要使用Regions插件,在页面中要引入plugin/wavesurfer.regions.js
文件。
然后可以使用wavesurfer.addRegion()
方法来创建Region对象。
Region
对象。options
参数是Region对象的参数。参数 | 类型 | 默认值 | 描述 |
id | string | random | region的id。 |
start | float | 0 | region的开始位置,单位秒。 |
end | float | 0 | region的结束位置,单位秒。 |
loop | boolean | false | Whether to loop the region when played back. |
drag | boolean | true | 是否允许拖拽region。 |
resize | boolean | true | 是否允许改变region的尺寸。 |
color | string | "rgba(0, 0, 0, 0.1)" | HTML演示代码。 |
MouseEvent
对象。MouseEvent
对象。MouseEvent
对象。MouseEvent
对象。