Я новичок в этом, поэтому, пожалуйста, позвольте мне помочь, чтобы у меня было приложение для Android, в котором есть одна кнопка Play. При нажатии кнопки воспроизведения он начнет воспроизведение звука, сохраненного в исходной папке, и текст кнопки будет изменен на паузу, чтобы приостановить звук, но когда я заблокирую свой телефон и после разблокировки, когда я нажимаю кнопку, я становлюсь ниже ошибки.Ошибка при воспроизведении звука при разблокировке экрана
09-05 09: 42: 57,749: Е/AndroidRuntime (11722): неустранимые: Главный 09-05 09: 42: 57,749: Е/AndroidRuntime (11722): java.lang.IllegalStateException 09 -05 09: 42: 57.749: E/AndroidRuntime (11722): at android.media.MediaPlayer._pause (собственный метод) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): на android.media.MediaPlayer .pause (MediaPlayer.java:1051) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at com.example.demo.DemoActivity $ 1.onClick (DemoActivity.java:57) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at android.view.View.performClick (View.java:4204) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): на android.view.View $ PerformClick.ru n (View.java:17355) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at android.os.Handler.handleCallback (Handler.java:725) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at android.os.Handler.dispatchMessage (Handler.java:92) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at android.os.Looper.loop (Looper. java: 137) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at android.app.ActivityThread.main (ActivityThread.java:5041) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at java.lang.reflect.Method.invokeNative (собственный метод) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at java.lang.reflect.Method.invoke (Method.java:511)) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:793) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:560) 09-05 09: 42: 57.749: E/AndroidRuntime (11722): at dalvik.system.NativeStart.main (Native Method)
Мой код, как показано ниже:
public class DemoActivity extends Activity{
MediaPlayer mp;
public void onCreate(Bundle savedInstanceState) {
mp = MediaPlayer.create(DemoActivity.this,
R.raw.biii);
final Button btn = (Button) findViewById(R.id.btnOk);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (btn.getText().toString().equalsIgnoreCase("play")) {
mp.start();
btn.setText("Pause");
} else if (btn.getText().toString().equalsIgnoreCase("pause")) {
mp.pause();
btn.setText("Play");
}
}
});
}
@Override
public void onPause() {
super.onPause();
mp.release();
}
}
Media Player выпущен, и вы wana call pause ... пожалуйста, узнайте о жизненном цикле activty ..., чтобы узнать, что вам нужно добавить журналы в 'onCreate',' onPause'' onResume' ... после этого ваш logcat будет показать somthing like * onCreate *, * onResume * ... (теперь заблокировать телефон) * onPause * ... (после разблокировки) * onResume * .... (или нечто подобное) ... с такой информацией вы будете в состоянии подумать об этом – Selvin
@Selvin: я пробовал, как вы сказали, но если я запустил приложение и заблокировал свой телефон, не играя песню, и когда я разблокирую и нажмите кнопку воспроизведения, это даст мне ошибку.Так что, пожалуйста, дайте мне весь код java-кода со всей реализацией метода. Спасибо – Rutvik