Tôi đang học Android và tôi đã tạo một hoạt động có hai nút: Nút ToggleButton (Phát/Tạm dừng) và nút (Tiếp theo). Tôi có hai bài hát muốn đạp xe khi nhấn Next. Tôi có một mảngMediaPlayer: Không thể mở tệp ở phía máy khách; Lỗi (-38,0) và nhiều hơn nữa
int [] songs={R.raw.song1,R.raw.song2};
Tôi overrode các onClick trong Hoạt động của tôi. Bài hát đầu tiên chơi tốt; nhưng sau khi nhấn Next, tôi nhận được các lỗi sau đây:
Không thể mở tập tin về phía khách hàng, cố gắng phía máy chủ
E/MediaPlayer (3107): bắt đầu được gọi là trong tình trạng 4
E/MediaPlayer (3107): lỗi (-38, 0)
E/MediaPlayer (3107): lỗi (-38,0)
E/MediaPlayer (3107): lỗi (1, -2147483648)
E/MediaPlayer (3107): Lỗi (1, -2147483648)
Trong onCreate (Bundle ...),
if(mp!=null) mp.release();
mp=MediaPlayer.create(this, songs[count]);
Dưới đây là tôi onClick (View v) Phương pháp:
public void onClick(View view) {
Log.v(TAG,"ID:"+view.getId());
switch (view.getId()) {
case R.id.playerbutton: //ToggleButton
if(state==0) {
mp.start();
state=1;
}
else if(state==1) {
state=0;
mp.pause();
}
break;
case R.id.next: //Next button
Log.v(TAG,"Next button pressed!");
count=(count+1)%2; //Have only two songs
mp.reset();
try {
mp.setDataSource(this, Uri.parse("android.resource://com.example.myfirstapp"+songs[count]));
mp.setOnPreparedListener(this);
mp.prepareAsync();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.start();
break;
}
}
Về cơ bản, tôi làm điều này cho mỗi lần bấm nút Tiếp theo: -reset mp (ví dụ: đối tượng MediaPlayer) -Đặt một nguồn dữ liệu mới để chơi bài hát tiếp theo mp -Bắt đầu
Đối với sử dụng setOnPreparedListener
hoặc prepareAsync
, tôi đọc this SO question.
Tôi sẽ làm gì sai?
bản sao có thể có của [Sự cố Android MediaPlayer: "Lỗi (-38, 0)" và "dừng được gọi trong trạng thái 1"] (http://stackoverflow.com/questions/11913108/android-mediaplayer-problems-error- 38-0-and-stop-called-in-state-1) – rds