cuốn sách gpt4 ai đã làm

Android MediaPlayer sẽ không bắt đầu lại sau khi dừng

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 12:42:29 25 4
mua khóa gpt4 Nike

Tôi muốn phát một âm thanh. Lần đầu tiên nó chạy tốt, nhưng nếu tôi dừng nó và muốn khởi động lại thì không có gì xảy ra... Có ý tưởng gì không?

cuối cùng MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.sex);
ImageButton vàvib = (ImageButton)findViewById(R.id.vib_toggle);
AudioManager cuối cùng am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
andvib.setOnClickListener(new View.OnClickListener(){
@Ghi đè
khoảng trống công khai trênClick(Xem v) {
am.setStreamVolume(AudioManager.STREAM_MUSIC, vol, 0);
Bộ rung rung = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
vibr.cancel();
if(rung==false) {
nếu(kiểu == 0)
rung.vibrate(durat, 0);
nếu(kiểu == 1){
rung.vibrate(staccato, 0);
}
nếu(kiểu == 2){
rung.vibrate(hoang dã, 0);
}
thử {
mp.prepare();
} bắt (IllegalStateException e) {
// TODO Khối bắt được tạo tự động
e.printStackTrace();
} catch (IOException e) {
// TODO Khối bắt được tạo tự động
e.printStackTrace();
}
mp.start();
mp.setLooping(true);
rung = đúng;
}
khác {
rung = sai;
mp.stop();
thử {
mp.prepare();
} bắt (IllegalStateException e) {
// TODO Khối bắt được tạo tự động
e.printStackTrace();
} catch (IOException e) {
// TODO Khối bắt được tạo tự động
e.printStackTrace();
}
vibr.cancel();
}
}
});

câu trả lời hay nhất

Khi làm việc với MediaPlayer, bạn phải luôn tham khảo sơ đồ thay đổi trạng thái mà bạn có thể xem tại đây:

http://developer.android.com/reference/android/media/MediaPlayer.html

Như có thể thấy trong hình, sau khi gọi stop() của MediaPlayer, nó sẽ vào trạng thái Đã dừng. Bạn cần gọi lại prepare() để chuyển nó sang trạng thái Chuẩn bị, sau đó gọi play().

Hãy nhớ rằng việc chuẩn bị có thể mất nhiều thời gian, do đó, việc này liên tục có thể dẫn đến trải nghiệm người dùng kém, đặc biệt nếu bạn đang chuẩn bị từ luồng chính (giao diện người dùng sẽ bị kẹt trong khi MediaPlayer đang chuẩn bị). Nếu bạn phát âm thanh thường xuyên, bạn thực sự chỉ nên chuẩn bị() một lần và sau đó luôn để nó ở trạng thái Bắt đầu, Tạm dừng hoặc Phát lại đã hoàn thành.

Bruno Oliveira, Kỹ sư chương trình dành cho nhà phát triển, Google

Về việc Android MediaPlayer không khởi động lại sau khi dừng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/5474501/

25 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress