当我启动MediaPlayer时出现异常,在大多数情况下我认为它是一个IllegalStateException,但是我遇到了RuntimeException:
java.lang.RuntimeException: failure code: -38
at android.media.MediaPlayer.invoke(MediaPlayer.java:694)
at android.media.MediaPlayer.getInbandTrackInfo(MediaPlayer.java:1944)
at android.media.MediaPlayer.getTrackInfo(MediaPlayer.java:1923)
at android.media.MediaPlayer.start(MediaPlayer.java:1205)
我不知道为什么会出现这个问题,任何人都可以帮忙解决这个问题吗?感谢。
这是我的代码:
TelephonyManager telephonyManager = (TelephonyManager) getContext().getSystemService(Service.TELEPHONY_SERVICE);
telephonyManager.listen(new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
if (player != null)
pause();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
break;
case TelephonyManager.CALL_STATE_IDLE:
if (player != null)
start(); // <-- RuntimeException
break;
}
}
}, PhoneStateListener.LISTEN_CALL_STATE);