0

我制作了一个播放某些声音的 Android 应用程序。我想停止一个声音,如果下一个正在播放并且我成功地做到了

 public     void w1() throws IllegalArgumentException, SecurityException, IllegalStateException, IOException{
         mediaPlayerW.reset();
mediaPlayerW.setDataSource(MainActivity.this, Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.w1));
 mediaPlayerW.prepare();
mediaPlayerW.start();}


    public void onClick(View f) {

if(f == button1) 
            {w1();}}

[其他方法称为w2;w3; w4 (...)] 但让我们只处理一种声音。

到目前为止,这有效,每个按钮声音都会“窒息”自己(并从头开始再次播放)并且他阻止其他人,所以总是只播放“新”声音。

我现在遇到的问题是,如果我按下一个按钮,我会有一点中断(约 100 毫秒)。对于音乐应用程序来说,即使是 40 毫秒也太高了。是否可以在缓存中预加载声音或其他东西?我认为 .reset() 花费了大部分时间..

谢谢你的帮助

4

1 回答 1

1

好的,我发现这个延迟问题对于旧版本无法解决,但是从 Android 4.1 开始,有另一个音频驱动程序效果更好。我尝试使用我的 gTab 2.0,反馈非常快。

您不必设置任何不同的东西,4.1 中的新音频内容与之前的一样,但要快得多

于 2013-04-06T13:27:53.053 回答