【发布时间】:2011-02-02 17:35:20
【问题描述】:
好吧,我已经和这个问题斗争了一段时间,并且有我没有遇到过这个问题的音板应用程序。我正在开发一个小部件,它允许在按下按钮时播放声音小部件。
我假设我只是没有正确使用 setOnPreparedListener,但基本上发生的事情是我的一些声音播放正确,而且声音很可能会切断最后一部分,因为单词或声音效果缺失而引起注意。以下是我的代码,如果您知道代码有什么问题或发布工作修订版,请告诉我。
提前感谢。
public int onStartCommand(Intent intent, int flags, int startId) {
/** Get our place holder for quotes & sounds. */
int s = UpdateService.getQuoteNumber();
/** Check if a sound is playing if so... stop and reset it. */
if (mp != null && mp.isPlaying()){mp.stop();mp.reset();}
/** Create a new mediaplayer and set looping. */
mp = MediaPlayer.create(this, SoundsClicked.randomSound[s]);
mp.setLooping(false);
/** Try to prepare the sound/mediaplayer, if not report error & type. */
try {mp.prepare();}
catch (IllegalStateException e) {e.printStackTrace();Log.e(Integer.toString(s), "IllegalStateException");}
catch (IOException e) {e.printStackTrace();Log.e(Integer.toString(s), "IOException");}
/** Check if the sound is prepared, if so play it. */
mp.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.start();
while (mp.isPlaying()) {};
}
});
return flags;}
这是从服务调用的(显然是从 onStartCommand 调用的),但我想我会把它扔给那些不熟悉某些方法的人。
【问题讨论】:
标签: android android-widget media-player listener audio