H5Recorder - 副本.js 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. import Recorder from 'recorder-core'
  2. import 'recorder-core/src/engine/mp3'
  3. import 'recorder-core/src/engine/mp3-engine' //如果此格式有额外的编码引擎(*-engine.js)的话,必须要加上
  4. export function recOpen(recObject = {}, fn) {
  5. // recObject添加属性 rec
  6. let rec = (recObject.rec = Recorder({
  7. type: recObject.type || 'mp3', // 需要使用的type类型,wav或者mp3
  8. bitRate: recObject.bitRate || 36, // 比特率kbps,越大音质越好
  9. sampleRate: recObject.sampleRate || 18000, // 采样率hz,每秒音波震动次数,越大细节越丰富
  10. onProcess: function(buffers, powerLevel, duration, sampleRate) {
  11. // 利用waveview扩展实时绘制波形
  12. if (recObject.wave) recObject.wave.input(buffers[buffers.length - 1], powerLevel,
  13. sampleRate)
  14. }, //录音实时回调,大约1秒调用12次回调
  15. }))
  16. rec.open(
  17. function() {
  18. console.log('打开成功:')
  19. // recwave:渲染音频波形图的ref名字,3是传一个名字,2是this.$refs【recwave】;非必须
  20. if (recObject.recwave) {
  21. recObject.wave = Recorder.WaveView({ elem: recObject.recwave })
  22. };
  23. fn('打开成功');
  24. },
  25. function(msg, isUserNotAllow) {
  26. // 浏览器不支持录音、用户拒绝麦克风权限、或者非安全环境(非https、file等
  27. console.log((isUserNotAllow ? 'UserNotAllow,' : '') + '无法录音:' + msg)
  28. fn('打开失败')
  29. }
  30. )
  31. }