mas*_*mic 0 android media-player
我正在开发一个测试应用程序,当自动测试过程结束时,播放警报声以通知操作员.
这个声音是一个3秒的持续时间警报铃声,我需要循环播放,直到用户触摸手机屏幕.
这是我实现媒体播放器的方式:
mp = MediaPlayer.create(MainActivity.this, R.raw.alarm);
try {
mp.prepare();
mp.setLooping(true);
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.start();
}
Run Code Online (Sandbox Code Playgroud)
我已经定义了mp.setLooping应该使声音连续播放,但事实并非如此.
然后,停止触摸屏幕的声音:
@Override
public boolean onTouchEvent (MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
/*If sound is playing, stops*/
if (mp.isPlaying()) {
mp.stop();
}
return true;
}
return super.onTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)
所以,如果mp.setLooping不能正常工作,我应该如何连续播放声音呢?
当您使用实例化MediaPlayer时create(),它将以准备好的状态返回,您不能对其进行调用prepare().在你的情况下,这是抛出异常,因此mp.setLooping(true)没有被调用.
| 归档时间: |
|
| 查看次数: |
412 次 |
| 最近记录: |