首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用webAudio接口播放pcm数据

使用webAudio接口播放pcm数据
EN

Stack Overflow用户
提问于 2012-01-03 18:29:00
回答 1查看 4.3K关注 0票数 9

嗨,我正在做WebAudio应用编程接口。我读了HTML5 Web Audio API, porting from javax.sound and getting distortion链接,但没有得到好的质量,因为在java am中。我从服务器获得有符号字节的PCM数据。然后我必须将其更改为16位格式。对于更改,我正在使用( firstbyte<<8 | secondbyte ),但我无法获得良好的声音质量。有没有什么问题,在转换或任何其他方式来做,以获得良好的音质?

EN

回答 1

Stack Overflow用户

发布于 2013-07-27 02:17:59

Web Audio API使用从-1到1的32位有符号浮点数,因此我将(希望)向您展示如何操作,而不是您在问题中提到的16位浮点数。

假设您的样本数组名为samples,并存储为从-128到127的2的补数,我认为这应该是可行的:

代码语言:javascript
复制
var floats = new Float32Array(samples.length);
samples.forEach(function( sample, i ) {
  floats[i] = sample < 0 ? sample / 0x80 : sample / 0x7F;
});

然后你可以这样做:

代码语言:javascript
复制
var ac = new webkitAudioContext()
  , ab = ac.createBuffer(1, floats.length, ac.sampleRate)
  , bs = ac.createBufferSource();
ab.getChannelData(0).set(floats);
bs.buffer = ab;
bs.connect(ac.destination);
bs.start(0);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8710846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档