안드로이드에서 오류 추적 있습니다 :이 코드에오류가 여기에
public class MultiMedia {
private static MediaPlayer mediaPlayer;
private static AudioManager am;
public static int getCurrentPosition() {
return mediaPlayer.getCurrentPosition();
}
public static int getDuration() {
return mediaPlayer.getDuration();
}
public static int getMaxVolume() {
return am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
}
public static int getVolume() {
return am.getStreamVolume(AudioManager.STREAM_MUSIC);
}
public static boolean isPuase() {
if (mediaPlayer != null) {
return isPause;
}
return false;
}
public static boolean isStarting() {
if (mediaPlayer != null) {
return isStarting;
}
return false;
}
public static void playSong(Context con, int songPath) {
mediaPlayer = new MediaPlayer();
am = (AudioManager) con.getSystemService(Context.AUDIO_SERVICE);
mediaPlayer = MediaPlayer.create(con, songPath);
mediaPlayer.setLooping(false);
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer arg0) {
destroy();
}
});
}
public static void seek(int msec) {
if (mediaPlayer != null) {
if (msec >= getDuration()) {
msec = getDuration();
} else if (msec <= 0) {
msec = 0;
}
mediaPlayer.seekTo(msec);
}
}
public static synchronized void setVolume(int index) {
am.setStreamVolume(AudioManager.STREAM_MUSIC, index, 0);
}
public static void updatePos(int currentPosition) {
pos = currentPosition;
}
private int intVolume;
public static boolean isPause = false, ismute = false;
private static boolean isStarting = false;
Context context;
private static int pos = 0;
public static void destroy() {
if (mediaPlayer != null) {
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
isStarting = false;
}
}
public static void pause() {
if (mediaPlayer != null) {
mediaPlayer.pause();
isPause = true;
}
}
public static void play(Context con, int resource) {
if (!ismute) {
if (mediaPlayer != null) {
mediaPlayer.start();
isPause = false;
isStarting = true;
} else {
playSong(con, resource);
}
}
}
public static void stop() {
if (mediaPlayer != null) {
mediaPlayer.seekTo(0);
mediaPlayer.pause();
}
}
public MultiMedia(Context con) {
this.context = con;
am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
mediaPlayer = new MediaPlayer();
}
public boolean getMute() {
return getVolume() == 0;
}
public String getSongName() {
return "this is song name";
}
public void setMute(Boolean isOn) {
if (mediaPlayer != null) {
if (isOn) {
intVolume = getVolume();
am.setStreamMute(AudioManager.STREAM_MUSIC, true);
} else {
am.setStreamMute(AudioManager.STREAM_MUSIC, false);
setVolume(intVolume);
}
}
}
}
라인 (48)은 다음과 같습니다 : mediaPlayer.setLooping (
다음java.lang.NullPointerException
at com.bappy.cror.MultiMedia.playSong(MultiMedia.java:48)
at com.bappy.cror.MultiMedia.play(MultiMedia.java:132)
at com.bappy.cror.MainActivity$1.onClick(MainActivity.java:146)
at android.view.View.performClick(View.java:2408)
at android.view.View$PerformClick.run(View.java:8816)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4633)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
내 코드입니다 그릇된);
내 장치에서이 오류를 다시 작성하려고 시도했지만 기울어졌습니다. 내가 왜이 오류가 발생하는지 이해가 안된다. 어떤 고위 회원이 나를 인도 할 수 있는지 또는이 문제를 파악할 수 있도록 도와 주시면 감사하겠습니다. 감사.
그래서 나는 이렇게 한 번만 선언하거나 두 가지 방법으로 그렇게 선언해야합니까? 아니면 한번 선언하십시오. – NoviceMe
원시 폴더에서 노래를 재생하는 경우 두 번째 방법을 사용하는 것이 좋습니다. 첫 번째 방법은 sdcard 또는 url에서 노래를 재생하는 데 사용됩니다. –
다시 버그를해서 죄송합니다. 나는 아직도 그것을 얻지 않았다? 코드에서 어디에서 변경해야하는지 알려 주시면 정말 감사하겠습니다. – NoviceMe