gpt4 book ai didi

java - 有人可以向我解释这个方法是如何工作的吗?

转载 作者:行者123 更新时间:2023-12-02 04:50:39 25 4
gpt4 key购买 nike

我有一个应用程序,当您按下屏幕上的按钮时,它会播放 mp3 文件。我想这样做,如果我在播放 mp3 时按后退按钮或主页按钮,歌曲就会停止播放。我想做一个 if 语句来检查是否按下了后退/主页按钮,如果任一情况为真,则调用 myMediaPlayer.stop();

到目前为止,我发现的唯一检查是否按下后退按钮的方法是:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
return true;
}
return super.onKeyDown(keyCode, event);
}

我的问题是我不知道如何在 if 语句中调用 onKeyDown 并检查是否按下了后退或主页按钮。

我在哪里可以找到键码是什么以及我需要传递给它的事件?

**这是初始化并播放 mp3 文件的代码:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final MediaPlayer mp = new MediaPlayer();
Button b = (Button) findViewById(R.id.default_activity_button);

b.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
try {
mp.reset();
AssetFileDescriptor afd;
afd = getAssets().openFd("sound.mp3");
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
mp.prepare();
mp.start();

} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();enter code here
}
}

});

有没有办法做这样的事情:

if(mp.isPlaying() == true && /* pseudo code*/BackButtonPressed == true/* pseudo code*/)
{

}

最佳答案

当发生任何按键事件时,操作系统会自动调用此函数。因此,您不需要自己显式调用它。您只需要检查您需要确定的按键即可。 return 语句告诉操作系统您是否自己处理了按键操作。例如,当您返回 true 时,操作系统知道您已成功处理该事件,并且它不需要为该特定按键执行任何操作。

但是,检测后退键按下的更标准方法是重写 onBackPressed()。

类似这样的事情,

@Override
public void onBackPressed() {
//stop playing mp3
}

针对您的情况,更具体的解决方案是按下后退键或主页按钮时,一旦您的 Activity 进入暂停状态,就停止播放音乐。

@Override
protected void onPause(){
//stop playing mp3
super.onPause();
}

关于java - 有人可以向我解释这个方法是如何工作的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29265043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com