0

我编写了一个简单的应用程序,按钮点击时会发出声音。在模拟器上确实有一个错误:“ 34 mp3extractor 无法重新同步。信号流结束”但是声音已经发生了。我能听到。

问题是,在某些真实设备上,安装后第一次或第二次尝试声音不起作用。在许多设备上,只有第二次或第三次尝试才会发出声音。

这种行为是非常不可靠和不一致的。

有人知道这个问题吗?谢谢您的回答。这是我的代码:

Button.OnClickListener Button_Auswertung_OnClickListener = new Button.OnClickListener() {

        public void onClick(View v) {           

        MediaPlayer mepl = MediaPlayer.create(Activity.this,  R.raw.sound);  
        mepl.start();

        Toast.makeText(getApplicationContext(), "klicked", Toast.LENGTH_SHORT).show();             

      }

};

4

2 回答 2

0

MediaPlayer每次调用您的 onclick 处理程序时,我都不会重新创建。

最好创建属于您的活动或片段的内容,然后从 onclick 处理程序调用 start()。

如果声音要播放很多,那么 aSoundPool可能是一个更好的主意。

此外,您似乎没有发布您的MediaPlayer,因为您正在创建一堆新的,这可能会导致异常。

于 2013-08-06T14:15:53.637 回答
0

使您的媒体播放器在您的点击之外:

 MediaPlayer mepl = MediaPlayer.create(Activity.this,  R.raw.sound);  

 Button.OnClickListener Button_Auswertung_OnClickListener = new Button.OnClickListener() {         

        public void onClick(View v) {           
             // just call start
             mepl.start();
             // also dont use app context for toasts
             Toast.makeText(v.getContext(), "klicked", Toast.LENGTH_SHORT).show();             

        }
 };

您将需要查看MEdiaPlayer的文档,尤其是状态图。它将帮助您了解如何正确使用而不会出错。

希望这可以帮助。

于 2013-08-06T14:17:45.700 回答