Android AudioTrack会在声音的开头和结尾点击

Android AudioTrack会在声音的开头和结尾点击,第1张

概述我在播放声音的开始和结束时获得了点击(来自SD卡的wav).它必须与轨道缓冲有关,但我不知道解决方案.此外,每当声音播放时,我都会创建一个新的,这是好还是有更好的方法?有很多声音一遍又一遍地播放.这是代码:publicvoidPlayAudioTrack(finalStringfilePath,finalFloatf)throw

我在播放声音的开始和结束时获得了点击(来自SD卡的wav).它必须与轨道缓冲有关,但我不知道解决方案.此外,每当声音播放时,我都会创建一个新的,这是好还是有更好的方法?有很多声音一遍又一遍地播放.这是代码:

public voID PlayAudioTrack(final String filePath, final float f) throws IOException    {    new Thread(new Runnable() { public voID run() {             //play sound here        int minSize = AudioTrack.getMinBufferSize( 44100, AudioFormat.CHANNEL_CONfigURATION_STEREO, AudioFormat.ENCoding_PCM_16BIT );                   AudioTrack track = new AudioTrack( AudioManager.STREAM_MUSIC, 44100,              AudioFormat.CHANNEL_CONfigURATION_STEREO, AudioFormat.ENCoding_PCM_16BIT,              minSize, AudioTrack.MODE_STREAM);        track.setPlaybackRate((int) (44100*f));    if (filePath==null)    return;    int count = 512 * 1024;     //Read the file..    byte[] byteData = null;    file file = null;    file = new file(filePath);    byteData = new byte[(int)count];    fileinputStream in = null;    try {    in = new fileinputStream( file );    } catch (fileNotFoundException e) {    // Todo auto-generated catch block    e.printstacktrace();    }    int bytesread = 0, ret = 0;    int size = (int) file.length();    while (bytesread < size) {     try {        ret = in.read( byteData,0, count);    } catch (IOException e) {        // Todo auto-generated catch block        e.printstacktrace();    }     track.play();     if (ret != -1) {     // Write the byte array to the track     track.write(byteData,0, ret); bytesread += ret;     }     else break; }     try {        in.close();    } catch (IOException e) {        // Todo auto-generated catch block        e.printstacktrace();    } track.stop(); track.release();     }        }).start();        }

非常感谢任何帮助

解决方法:

你是不是也可以播放PCM波形文件头?

每个PCM波形文件在文件的开头都有一个小标题,如果你播放它,你会播放标题字节,这可能导致在te开头点击.

总结

以上是内存溢出为你收集整理的Android AudioTrack会在声音的开头和结尾点击全部内容,希望文章能够帮你解决Android AudioTrack会在声音的开头和结尾点击所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1105546.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存