1
버튼을 누르면 소리를 재생하는 전화 걸기 앱을 만들고 있는데 앱이 훌륭하게 작동하지만 잠시 후 준비된 수신기 때문에 무작위 충돌이 발생합니다. 나는 미디어 플레이어null 객체 참조에 준비된 수신기의 Android 미디어 플레이어
if (mLastButton == one) {
MediaPlayer mediaPlayer ;
mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.one);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mp1.start();
}
});
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mp1.release();
}
});
}
if (mLastButton == two) {
MediaPlayer mediaPlayer ;
mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.two);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mp2.start();
}
});
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mp2.release();
}
});
}
if (mLastButton == three) {
MediaPlayer mediaPlayer ;
mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.three);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mp3.start();
}
});
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mp3.release();
}
});
}
if (mLastButton == four) {
MediaPlayer mediaPlayer ;
mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.four);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mp4.start();
}
});
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mp4.release();
}
});
}
응용 프로그램이 잘 작동
과 같은 버튼을 주조하는 방법을하지 무슨 일이 일어나고 있는지 알고이 오류
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setOnPreparedListener(android.media.MediaPlayer$OnPreparedListener)' on a null object reference
at com.alper.pola.andoid.phonedailer.MainActivity$1.onTouch(MainActivity.java:258)
이며,이 때 내가 그것을 클릭 노력하고 있지만, 그 후 버튼이 작동을 멈추고 모든 버튼으로이 충돌을 얻습니다. 잘 작동하지만, 몇 가지 숫자를 입력하면 앱 충돌이 발생합니다.
활동 코드 전체를 올리십시오. 문제를보다 쉽게 해결하는 데 도움이됩니다. –
mp3를 호출하는 대신 onPrepared 메서드에 전달되는 "mediaPlayer"매개 변수를 mediaPlayer 인스턴스에 직접 구성하고 전달하는 대신 – Starlord
을 사용하지 않습니다. "몇 개의 숫자 입력"이란 무엇을 의미합니까? 어디에? 항상 같은 양의 숫자입니까? –