Android 按下后退按钮时停止媒体播放器MP3
我的代码工作正常,除非你按下后退按钮 当我按下“停止”按钮时,名为“测试”的MP3文件停止播放,音频检查屏幕返回到菜单屏幕。完美的在我在手机上测试代码之前,一切都很好。当我使用Android手机上的后退按钮(而不是应用程序上的停止按钮)退出时,媒体播放器会继续播放。我尝试了所有的代码并查看了所有相关的问题。我使用onStop on pause finish keyevent.KEYCODE_实现了代码,以此类推,什么都不起作用。我被难住了 这是我的密码。如何通过按下与此代码相关的Android后退按钮来停止此MP3Android 按下后退按钮时停止媒体播放器MP3,android,android-mediaplayer,mp3,media,Android,Android Mediaplayer,Mp3,Media,我的代码工作正常,除非你按下后退按钮 当我按下“停止”按钮时,名为“测试”的MP3文件停止播放,音频检查屏幕返回到菜单屏幕。完美的在我在手机上测试代码之前,一切都很好。当我使用Android手机上的后退按钮(而不是应用程序上的停止按钮)退出时,媒体播放器会继续播放。我尝试了所有的代码并查看了所有相关的问题。我使用onStop on pause finish keyevent.KEYCODE_实现了代码,以此类推,什么都不起作用。我被难住了 这是我的密码。如何通过按下与此代码相关的Android后
public class Audio_Check extends Activity{
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
public class Audio_Check extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.audio_check);
final MediaPlayer buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
Button stbutton = (Button) findViewById(R.id.startbutton);
stbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
buttonSound.start();
}
});
Button spbutton = (Button) findViewById(R.id.stopbutton);
spbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
buttonSound.stop();
buttonSound.release();
Intent openE1 = new Intent("com.myapp.mysite.MENU");
startActivity(openE1);
}
});
}
}
我使用onStop on pause finish keyevent.KEYCODE\u BACK实现了代码
诸如此类,什么都不起作用
无需在onPause
或onStop
中执行此操作,只需覆盖后退按钮并停止媒体播放器并完成活动
@Override
public void onBackPressed(){
if(buttonSound != null && buttonSound.isPlaying())
buttonSound.stop();
finish();
}
如果您使用的API低于5:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(buttonSound != null && buttonSound.isPlaying())
buttonSound.stop();
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
我使用onStop on pause finish keyevent.KEYCODE\u BACK实现了代码
诸如此类,什么都不起作用
无需在onPause
或onStop
中执行此操作,只需覆盖后退按钮并停止媒体播放器并完成活动
@Override
public void onBackPressed(){
if(buttonSound != null && buttonSound.isPlaying())
buttonSound.stop();
finish();
}
如果您使用的API低于5:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(buttonSound != null && buttonSound.isPlaying())
buttonSound.stop();
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
把这个方法,
@Override
protected void onDestroy() {
super.onDestroy();
buttonSound.stop();
buttonSound.reset();
buttonSound.release();
buttonSound = null;
}
希望它能起作用。把这个方法
@Override
protected void onDestroy() {
super.onDestroy();
buttonSound.stop();
buttonSound.reset();
buttonSound.release();
buttonSound = null;
}
希望它能起作用。我睡不着。整晚都在编码和研究,直到我把它投入工作 成功了!但我必须在运行时根据详细的错误消息找出下一步。我必须拿出“final and MediaPlayer”,否则当我通过模拟器运行它时,Eclipse会强制关闭它。编译代码时未显示任何错误
MediaPlayer buttonSound ; // declared above first @Override
// code after that
//更改了此文件的代码
final MediaPlayer buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
//对此
buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
//它是有效的
谢谢你,我睡不着。整晚都在编码和研究,直到我把它投入工作 成功了!但我必须在运行时根据详细的错误消息找出下一步。我必须拿出“final and MediaPlayer”,否则当我通过模拟器运行它时,Eclipse会强制关闭它。编译代码时未显示任何错误
MediaPlayer buttonSound ; // declared above first @Override
// code after that
//更改了此文件的代码
final MediaPlayer buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
//对此
buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
//它是有效的
谢谢现在它可以工作了。。。问题就在这里 注意按钮sound.start()的位置;放在我的原始代码中?它在}的上方; 当我把它放在})下面时;成功了。很明显,它以前是受保护的,但现在可以正常工作了
buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
Button stbutton = (Button) findViewById(R.id.stbutton);
stbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
buttonSound.start();
// onDestroy goes right here
现在它工作了。。。问题就在这里 注意按钮sound.start()的位置;放在我的原始代码中?它在}的上方; 当我把它放在})下面时;成功了。很明显,它以前是受保护的,但现在可以正常工作了
buttonSound = MediaPlayer.create(Audio_Check.this, R.raw.testing);
Button stbutton = (Button) findViewById(R.id.stbutton);
stbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
buttonSound.start();
// onDestroy goes right here
邹祖。。谢谢,但我两种代码都试过了。我以前找到过。也许是我插入代码的地方,但我会出错。。。我正在使用Eclipse构建id:20120920-0800的版本:Juno Service Release 1。。。。编程Android 4.2..我应该把代码放在哪里,这样它就可以工作,而不会让Eclipse给我错误?我以前试过各种各样的方法。也许我遗漏了什么错误2。。。语法错误,插入“EnumBody”以完成BlockStatement在另一个区域插入代码我收到此错误。。。类型为new View.OnClickListener(){}的方法onBackPressed()必须重写或实现超类型方法我甚至尝试了>>>@override public boolean onKeyDown(int-keyCode,KeyEvent-event){//TODO自动生成的方法存根if(keyCode==KeyEvent.keyCode\u-BACK){if(buttonSound!=null&&buttonSound.isPlaying())buttonSound.stop();finish();return true;}否则返回super.onKeyDown(keyCode,event);}//不好,因为buttonSound无法解析。我做错了什么?邹祖..谢谢,但我尝试了两个代码。我以前找到过它们。可能是在插入代码的地方,但我遇到了错误…我使用的是Eclipse Build id:20120920-0800的版本:Juno Service Release 1…编程Android 4.2..我应该将这些代码放在哪里,以便它可以运行rk和Eclipse没有给我错误?我以前尝试过所有的变体。可能我遗漏了什么。错误2…语法错误,插入“EnumBody”来完成BlockStatement在另一个区域插入代码我得到了这个错误…类型为new View.OnClickListener()的方法onBackPressed(){}必须重写或实现超类型方法我甚至尝试了>>>@override public boolean onKeyDown(int keyCode,KeyEvent event){//TODO自动生成的方法存根if(keyCode==KeyEvent.keyCode_BACK){if(buttonSound!=null&&buttonSound.isPlaying())buttonSound.stop();finish();返回true;}否则返回super.onKeyDown(keyCode,event);}//不好,因为buttonSound无法解决。我做错了什么?Mavani,谢谢你,但邹祖的评论确实有效。当我使用后退按钮停止线程时,我可能会使用你的建议。它只起了一次作用,现在停止了作用。我将它下载到手机上,以防它是Eclipse/Android仿真器问题。它现在不起作用。…我将尝试onDestroy。Mavani,谢谢你,但邹祖的评论确实有效。当我使用后退按钮停止线程时,我可能会使用你的建议。它只工作过一次,现在停止工作。我将它下载到手机上,以防它是Eclipse/Android模拟器问题。它现在不工作…我将尝试onDestroy。