この質問は既に尋ねられていますが、解決策を見つけることができません。setOnTouchListenerでオーディオを録音しようとすると、アプリケーションがクラッシュする
私がしていることは、MotionEvent.ACTION_DOWN
のOnTouchListener
です。オーディオの録音を開始しました。MotionEvent.ACTION_UP
録音を停止しました。
アイコンを長時間タッチしてもうまくいきますが、onclick
アプリがクラッシュしています。 はここにここに私の
audio.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(Chat.this, "You Have to hold the Button for audio recording.", Toast.LENGTH_LONG).show();
}
});
audio.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
MediaRecorderReady();
try {
mediaRecorder.prepare();
mediaRecorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else if (event.getAction() == MotionEvent.ACTION_UP) {
if (mediaRecorder != null) {
mediaRecorder.stop();
}
}
return true;
}
});
public void MediaRecorderReady() {
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
mediaRecorder.setOutputFile(AudioSavePathInDevice);
}
は、私はアプリが
ここにエラーログを投稿してください – UltimateDevil
java.lang.RuntimeException:停止に失敗しました。 android.media.MediaRecorder.stop(ネイティブメソッド) – manjari
親切に、完全なlogcatを入れて、onclick onTouchを押すとActionDownと呼ばれ、ActionUpも呼び出されることを確認します。 –