web-audio-recorder-js, 带网络音频API的. wav/.ogg/.mp3 录制器

分享于 

7分钟阅读

GitHub

  繁體
.wav/.ogg/.mp3 recorder with Web Audio API
  • 源代码名称:web-audio-recorder-js
  • 源代码网址:http://www.github.com/higuma/web-audio-recorder-js
  • web-audio-recorder-js源代码文档
  • web-audio-recorder-js源代码下载
  • Git URL:
    git://www.github.com/higuma/web-audio-recorder-js.git
    Git Clone代码到本地:
    git clone http://www.github.com/higuma/web-audio-recorder-js
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/higuma/web-audio-recorder-js
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    WebAudioRecorder.js

    WebAudioRecorder.js是一个JavaScript库,它录制音频输入(Web音频API AudioNode对象)并编码到音频文件图像(Blob对象),支持三种编码格式。

    • 波形音频(wav )
    • Ogg Vorbis (Ogg )
    • MP3(MPEG-1音频第III层)(.mp3)

    此库使用以下编码器库作为底层。

    演示

    麦克风录音机演示。

    https://higuma.github.io/web-audio-recorder-js/

    库文件

    库由一个主脚本和几个辅助脚本组成。

    lib/包含未压缩的库文件。

    • WebAudioRecorder.js:主脚本
    • WebAudioRecorderWav.js:波形音频编码器的工作者
    • WebAudioRecorderOgg.js :ogg Vorbis编码器的工作者
    • WebAudioRecorderMp3.js:MP3编码器的工作线程
    • WavAudioEncoder.min.js:波形音频编码器(来自WavAudioEncoder.js)
    • OggVorbisEncoder.min.js :ogg Vorbis编码器(来自OggVorbisEncoder.js)
    • Mp3LameEncoder.min.js:MP3编码器(来自Mp3LameEncoder.js)
    • OggVorbisEncoder.min.js.mem :ogg Vorbis编码器的内存初始化器(必须位于同一目录中)
    • Mp3LameEncoder.min.js.mem:MP3编码器的内存初始值设定项(必须位于同一目录中)

    lib-minified/包含缩小的库文件。

    • WebAudioRecorder.min.js:主脚本(minified )
    • WebAudioRecorderWav.min.js:波形音频工作者(与编码器和recompressed连接)
    • WebAudioRecorderOgg.min.js :ogg Vorbis的worker (与编码器和recompressed连接)
    • WebAudioRecorderMp3.min.js:MP3的worker (与encoder和recompressed连接)
    • OggVorbisEncoder.min.js.mem :ogg Vorbis编码器的内存初始化(与上面的文件相同)
    • Mp3LameEncoder.min.js.mem:MP3编码器的内存初始值设定项(与avove文件相同)

    使用库

    首先从HTML加载主脚本。

    <scriptsrc="javascripts/WebAudioRecorder.js"></script>

    创建音频录制器对象(或通过setEncoding()更改编码)时加载工作文件,必须在对象构造函数(有关详细信息,请参阅API参考)上设置worker目录。

    audioRecorder =newWebAudioRecorder(sourceNode, {
     workerDir:"javascripts/"// must end with slash});

    API

    构造函数

    recorder =newWebAudioRecorder(sourceNode, configs)

    创建音频录制器对象。

    • 参数
    • sourceNode:源输入(AudioNode对象)
    • configs:配置对象
    • .workerDir:工作文件目录(默认值= "/" )
    • .numChannels:通道数(默认值= 2 (立体声))
    • .encoding:编码(默认为"wav",有关详细信息,请参见.setEncoding() )
    • .options:选项(有关详细信息,请参见.setOptions() )
    • 退货
    • 音频录制器对象

    每个配置属性都有一个默认值(通常应仅设置.workerDir.encoding),可以在构造后通过.setEncoding().setOptions()选项更改编码。

    如果使用MP3编码,就无法从默认.numChannels更改(当前MP3编码器仅支持2-channel立体声)。

    实际上,configs被深拷贝到recorder对象本身。

    方法

    recorder.setEncoding(encoding)

    构造后更改编码。

    • 参数
    • .encoding:编码
    • "wav":波形音频(默认)
    • "ogg" :ogg Vorbis
    • "mp3":MP3
    • Returns
    • (none )

    录制未运行时可以更改编码,如果在录制期间调用该方法,就激发.onError()事件。

    recorder.setOptions(options)

    设置选项。

    • 参数
    • options:选项对象
    • .timeLimit :录音时间限制(第二)(默认值= 300 )
    • .encodeAfterRecord:编码处理模式
    • false:录制背景上的进程编码(默认)
    • true:录制完成后的处理编码
    • .progressInterval :编码进度报告间隔(毫秒)(默认值= 1000 )
    • 仅在.encodeAfterRecordtrue时使用)
    • .bufferSize:录音缓冲区大小(默认值undefined (使用浏览器默认))
    • .wav.mimeType:波形音频MIME类型(默认值= "audio/wav" )
    • .ogg.mimeType :ogg Vorbis MIME类型(默认值= "audio/ogg" )
    • .ogg.quality :ogg Vorbis质量(-0.1,1)默认= 0.5 )
    • .mp3.mimeType:MP3 MIME类型(默认为"audio/mpeg" )
    • .mp3.bitRate:MP3位速率(通常为64,320 (对于44100Hz )默认值= 160 )
    • Returns
    • (无)

    录制时可以设置选项,如果在记录期间调用该方法,就激发.onError()事件。

    recorder.startRecording()

    WEB  API  音频  记录  WAV  MP3  
    相关文章