音频停止播放按钮(Android)
我有这个问题,我有一些音频我想播放...音频停止播放按钮(Android)
我有两个按钮,'播放'和'停止'...
问题是,按下停止按钮后,然后按下播放按钮,什么也没有发生。 -The停止按钮停止歌曲,但我想要的播放按钮再次播放歌曲(从一开始)这里是我的代码:
final MediaPlayer mp = MediaPlayer.create(this, R.raw.megadeth);
,然后将两个公共onclicks:
(用于播放...)
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
button.setText("Playing!");
try {
mp.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
//
}
});
而停止轨道...
final Button button2 = (Button) findViewById(R.id.cancel);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mp.stop();
mp.reset();
}
});
任何人都可以看到的问题机智这个?如果是的话请您修复它......(对于建议)
非常感谢......
詹姆斯
您需要start()
之前调用prepare()
或preparAsync()
。
查看API for details(查看状态图)。
看看我把... 'mp.prepare'然后一些ifs ...然后'mp.start'那么为什么它不工作? – 2010-04-22 18:17:41
@ James Rattray:将读取'mp.reset()'的行更改为您的button2代码中的'mp.prepare()'。Reset需要重新设置数据源并再次调用prepare - 这是从错误中恢复的结果 – JRL 2010-04-22 18:34:41
So no mp。重置所有?只是mp.stop然后mp.prepare()? - 无效...这不起作用=/ – 2010-04-22 21:13:14
这是我在我的程序中工作。它每次释放媒体播放器,因为每次调用时都会使用不同的声音,但它应该作为您使用的解决方法。
创作:
public MediaPlayer mp=null;
开始:
if (mp!=null){
mp.reset();
mp.release();
}
mp = MediaPlayer.create(test.this, soundResource);
mp.start();
停止:
mp.stop();
另外请注意,您不需要使用做准备,因为创建方法已要求您准备(API REF)。
还有就是Android文档中的错误,在this页这是说,你可以stop()
“原始资源”媒体播放器,然后就再次调用start()
之前调用reset()
和prepare()
重播。正如你所注意到的,这不起作用。
问题是reset()
会清除音频源并返回到初始状态,因此您必须重新设置数据源。不幸的是,您不能设置“原始资源”数据源,因为除了create()
之外,没有此API。
我不知道解决这个问题的干净方式。 stealthcopter的工作方式很好,但是对于你的设计来说很痛苦,因为你需要为每个start()调用(需要上下文):(并且涉及销毁和创建一个复杂的对象,这对于游戏等实时应用程序是一个价格...
,以确保这方面将只需要为创建()调用,就是这种方式阻止媒体播放器的另一种方式:
stop()
prepare()
但如果你现在叫start()方法,它不会重新开始。您可以拨打seekTo(0)
,但声音会有一点来自以前的播放位置的噪音。
我一直在调查。必须有停止,并在原始资源创建时重新启动媒体播放器的清洁和高效的方式...
重置后MediaPlayer返回到“空闲”状态。 我查看了你给出的页面,但没有看到它。 你可以看看状态图上的这个页面,并看到reset()得到你的位置:) http://developer.android.com/reference/android/media/MediaPlayer.html#State%20Diagram – talel 2013-04-19 15:17:29
*播放按钮做工精细,负一时间各地 *停止按钮做工精细,(在停止音频) 仍再次启动音频的问题=/- 播放按钮:( – 2010-04-22 17:40:44