我正在尝试制作一个简单的应用程序:中间有一个按钮,孩子会按下。只要按下该按钮,它就会播放某个MP3。
目前,我尝试使用ionic serve
,但只有在释放按钮时才会播放。
答案 0 :(得分:3)
您不需要使用只显示按下和释放界面的onClickListener
,而是需要使用onTouchListener
- 它会公开视图的所有触摸事件。
myButton.setOnTouchListener( new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch ( event.getAction() ) {
MotionEvent.ACTION_DOWN:
// start playing
return true;
MotionEvent.ACTION_UP:
// stop playing
return true;
}
return false;
}
});
答案 1 :(得分:0)
尝试这样的事情。使用布尔"播放"你可以在别处创建一个线程/循环来检查是否仍在播放并保持音频。
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if (arg1.getAction()==MotionEvent.ACTION_DOWN) {
playing = true;
} else {
playing = false;
}
return true;
}
});
答案 2 :(得分:0)
尝试使用OnFocusChangeListener
Button.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
// code to execute when Button loses focus, i.e. stop music
}
}
});
答案 3 :(得分:0)
由于按钮是视图组件,因此可以使用View.OnTouchListener事件侦听器和ACTION_BUTTON_PRESS& ACTION_BUTTON_RELEASE MotionEvent。
以下是一个例子:
yourButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_BUTTON_PRESS){
// Start Video
return true;
} else if (event.getAction() == MotionEvent.ACTION_BUTTON_RELEASE) {
// End Video
return true;
}
return false;
}
});
答案 4 :(得分:0)
这是我的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void start_recording(View view){
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.test1);
mediaPlayer.start();
}
}