600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > pcm转wav 解决浏览器无法直接播放pcm格式的音频数据

pcm转wav 解决浏览器无法直接播放pcm格式的音频数据

时间:2021-04-22 18:38:25

相关推荐

pcm转wav 解决浏览器无法直接播放pcm格式的音频数据

1. 创建PCM2WAV类

const stream = require('stream')const waveheader = require('waveheader')class PCM2WAV {constructor (options) {let pcm2wav = new stream.Transform()options = options || {}options.size = options.size || 0options.channels = options.channels || 1options.sampleRate = options.sampleRate || 16000pcm2wav._transform = function (chuck, encoding, done) {if (!this._initialized) {this.push(waveheader(options.size, {channels: options.channels,sampleRate: options.sampleRate}))this._initialized = true}this.push(chuck)done()}return pcm2wav}}export {PCM2WAV}

2. 处理base64格式的pcm数据

let bstr = atob(pcmdata)let n = bstr.lengthlet u8arr = new Uint8Array(n)while (n--) {u8arr[n] = bstr.charCodeAt(n)}

3. pcm转为wav格式音频数据,并测试播放wav音频

let pcm2wav = new PCM2WAV()pcm2wav.write(u8arr, () => {let data = pcm2wav.read()let blob = new Blob([data], {type: 'audio/wav'})let audio = new Audio()audio.src = URL.createObjectURL(blob)audio.oncanplay = () => {audio.play()}})

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。