Java 当我单击退出应用程序时,如何停止mediaplayer?
我在onCreate方法中启动了一个声音,意思是当我打开应用程序时,音乐开始播放。然后我有一个按钮来停止音乐,一切正常。但如果我启动应用程序,然后离开应用程序,音乐仍在播放,因此当我单击“上一步”按钮离开应用程序时,我也想停止音乐。 我有以下代码: 一旦创建:Java 当我单击退出应用程序时,如何停止mediaplayer?,java,android,Java,Android,我在onCreate方法中启动了一个声音,意思是当我打开应用程序时,音乐开始播放。然后我有一个按钮来停止音乐,一切正常。但如果我启动应用程序,然后离开应用程序,音乐仍在播放,因此当我单击“上一步”按钮离开应用程序时,我也想停止音乐。 我有以下代码: 一旦创建: final MediaPlayer mp = MediaPlayer.create(this, R.raw.seconds); mp.start(); 然后是onDestroy: @Override public void on
final MediaPlayer mp = MediaPlayer.create(this, R.raw.seconds);
mp.start();
然后是onDestroy:
@Override
public void onDestroy()
{
// Don't forget to shutdown!
if (tts != null) {
tts.stop();
tts.shutdown();
}
super.onDestroy();
mp.stop;
}
但在国会议员停止;我的议员是红色的,所以不工作。
如果我尝试将MediaPlayer mp置于onCreate之外,那么mp.start;下院议员停下来;下院议员情绪低落,不要工作太多
有什么建议吗
试着像上面那样使用 试试这个
private MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
///
mp = MediaPlayer.create(this, R.raw.seconds);
}
@Override
protected void onStop() {
if(mp.isPlaying()){
mp.stop();
}
super.onStop();
}
您可以使用此功能播放歌曲
public void playSong()
{
try
{
mp.reset();
mp.prepare();
mp.start();
}
catch (IllegalStateException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
然后在销毁时释放玩家
@Override
public void onDestroy(){
super.onDestroy();
mp.release();
}
将以下代码放入Activity的onStop()方法中,这样当您的Activity进入backstack或离开应用程序时,音乐将停止
@Override
protected void onStop()
{
if(mp != null && mp.isPlaying())
{
mp.stop();
mp.release();
mp = null;
}
super.onStop();
}
}您使用的是哪个IDE?我使用的是Android Studio我到目前为止还没有使用过Android Studio,但也许您可以告诉我“蓝线”是什么意思?添加一些说明,以便其他人也可以使用。
@Override
protected void onStop()
{
if(mp != null && mp.isPlaying())
{
mp.stop();
mp.release();
mp = null;
}
super.onStop();
}
public class SampleMediaPlayer extends Activity {
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sample_media_player); //your layout resource
}
@Override
public void onStart() {
super.onStart();
}
@Override
public void onStop() {
super.onStop();
mediaPlayer.release();
mediaPlayer = null;
}