Android:AudioTrack在开始时会发出咔嗒声

Android:AudioTrack在开始时会发出咔嗒声,第1张

概述我正在开发一个Android应用,我想播放一些短声音(〜2s).我尝试了Soundpool,但是它真的不适合我,因为它无法检查声音是否已经在播放.因此,我决定使用AudioTrack.大多数情况下,它运行良好,但是当它开始播放声音时会发出“喀哒”声.我检查了我的音频文件,它们很干净.我在流模式下使

我正在开发一个Android应用,我想播放一些短声音(〜2s).我尝试了Soundpool,但是它真的不适合我,因为它无法检查声音是否已经在播放.因此,我决定使用AudioTrack.

大多数情况下,它运行良好,但是当它开始播放声音时会发出“喀哒”声.
我检查了我的音频文件,它们很干净.

我在流模式下使用音轨.我看到静态模式更适合短音,但经过多次搜索后,我仍然不知道如何使其工作.
我还读到咔嗒声可能是由wav文件的标头引起的,所以如果我使用setPlaybackheadposition(int positionInFrames)函数跳过该标头,声音可能会消失(应该只在静态模式下起作用)

这是我的代码(所以问题是开头的滴答声)

    int minBufferSize = AudioTrack.getMinBufferSize(44100, AudioFormat.CHANNEL_CONfigURATION_MONO,             AudioFormat.ENCoding_PCM_16BIT);    audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_CONfigURATION_MONO,          AudioFormat.ENCoding_PCM_16BIT, minBufferSize, AudioTrack.MODE_STREAM); audioTrack.play();            int i = 0;            int bufferSize = 2048; //don't really kNow which value to put            audioTrack.setPlaybackRate(88200);            byte [] buffer = new byte[bufferSize];//there we open the wav @R_419_6852@ >            inputStream inputStream = getResources().openRawResource(R.raw.abordage);            try {                while((i = inputStream.read(buffer)) != -1)                    audioTrack.write(buffer, 0, i);            } catch (IOException e) {                // Todo auto-generated catch block                e.printstacktrace();            }            try {                inputStream.close();            } catch (IOException e) {                // Todo auto-generated catch block                e.printstacktrace();            }

有没有人有避免这种噪音的解决方案?我尝试了this,有时可以,但并非每次都可以.有人可以告诉我如何在MODE_STATIC中实现音轨吗?
谢谢

解决方法:

音频“爆裂”的常见原因是由于渲染过程未在零交叉点处开始/停止声音(假设-1到1的最小/最大交叉点为0).扬声器或耳塞等换能器处于静止状态(无声音输入),映射到该零交叉点.如果音频渲染过程无法从该零开始/停止到零,则要求换能器执行不可能的 *** 作,即在其最小/最大运动范围内从静止状态瞬时转到某个非零位置(或签证)反之亦然,如果最后出现“流行”字样的话.

总结

以上是内存溢出为你收集整理的Android:AudioTrack在开始时会发出咔嗒声全部内容,希望文章能够帮你解决Android:AudioTrack在开始时会发出咔嗒声所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存