java 生成正弦波声音_在Java中生成正弦波时背景噪声

当我运行以下代码时,我的后台出现轻微失真(听起来像嗡嗡声)。由于其微妙的性质,它使人相信字节转换会发生某种混叠。

音频格式= PCM_SIGNED 44100.0 Hz,16位,立体声,4字节/帧,大端

注意 :代码暂时假设数据是大端的。

public static void playFreq(AudioFormat audioFormat, double frequency, SourceDataLine sourceDataLine)

{

System.out.println(audioFormat);

double sampleRate = audioFormat.getSampleRate();

int sampleSizeInBytes = audioFormat.getSampleSizeInBits() / 8;

int channels = audioFormat.getChannels();

byte audioBuffer[] = new byte[(int)Math.pow(2.0, 19.0) * channels * sampleSizeInBytes];

for ( int i = 0; i < audioBuffer.length; i+=sampleSizeInBytes*channels )

{

int wave = (int) (127.0 * Math.sin( 2.0 * Math.PI * frequency * i / (sampleRate * sampleSizeInBytes * channels) ) );

//wave = (wave > 0 ? 127 : -127);

if

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值