android:限制播放的声音总数?

时间:2012-08-18 16:17:41

标签: android audio limit playback

我的应用播放选定数量的短音(存储在res / raw中)。声音是在包含这些声音的数组soundfileFR []中随机选择的。 单击一个按钮即可播放所选择的声音数量,使用“for”循环播放一个接一个的声音。 该应用程序运行得非常好...除了,由于一些未知的原因,它将永远不会连续播放超过30个这样的声音,即如果我启动应用程序并选择“35”作为要播放的声音的数量,它不会播放最后五个声音。或者,如果我首先选择“20”它会播放所有声音,然后我选择“12”并且它不播放最后2个声音。

每个声音都是“.wav”,仅重约50 Ko。 有某种内存限制吗? 我是否需要在每个声音之间“重置”媒体播放器(?)?如果是这样的话?

“for”循环如下:

for (int n = 1; n <= totalNb; n++) {
    final int randomNb;

    final int nn = n;

    randomNb = (int)(Math.floor(Math.random()*(10))); // random nb between 0 and 9                              

    handlerH.postDelayed(new Runnable(){

        public void run() {

        mp = MediaPlayer.create(getBaseContext(), soundfileFR[randomNb]);  // initializes a sound for folder res/raw

            mp.seekTo(0); 
            mp.start();  // plays the sound

            pgbSpoken.setProgress(nn);  // incrementation of the progressBar

        }

    },
    initialdelay + n * intervalrep);    


} // end of "for"

感谢您的帮助。

皮尔

1 个答案:

答案 0 :(得分:1)

这个确切的错误也发生在使用html5的默认浏览器中。仅播放前30个声音。如果你试着打31,你什么也听不到。如果您播放以前播放的声音,则可以。

您可以使用音频精灵。这是当今常见的解决方案,你会发现很多Android的实现。

你找到了解决方案吗?