当 EditText
上发生 Enter
键事件时,我尝试播放音频一次
。
但媒体播放器播放循环
音频并且永不停止
。并且 Media Player
没有调用 setOnCompletionListener
方法。
editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
//Toast.makeText(LoginActivity.this, editText.getText(), Toast.LENGTH_SHORT).show();
try {
MediaPlayer mp = new MediaPlayer();
AssetFileDescriptor afd = getAssets().openFd("oxygen.ogg");
mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
mp.setLooping(false);
mp.prepare();
mp.start();
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Log.i("ONComplete Media palyer", "onComplete hit");
mp.stop();
mp.release();
}
});
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
return false;
}
});
最佳答案
我使用 setOnSeekCompleteListener
方法而不是 setOnCompletionListener
。它播放一次并立即停止。
关于android - 媒体播放器总是循环播放,永不停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38821469/