Tôi đang xây dựng một máy ghi âm cần phát lại âm thanh đã ghi. Tôi đang gặp rất nhiều rắc rối khi phát lại âm thanh. Tôi biết rằng các tập tin tồn tại bởi vì tôi bị cô lập nó vào một thư mục trên thẻ SD của tôi, nhưng đối với một số lý do nó không thể chơi nó trở lại.Chuẩn bị Android MediaPlayer không thành công: status = 0x1
Đây là mã của tôi:
public class RecorderEditActivity extends SherlockActivity implements
DatabaseHelper.MetadataListener {
private long position;
private Button playButton = null;
private TextView date = null;
private EditText title = null;
private EditText notes = null;
private Button saveButton = null;
private MediaPlayer mediaPlayer = null;
private boolean isPlaying = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_item);
position = getIntent().getExtras().getLong(DatabaseHelper.KEY_ROWID);
playButton = (Button) findViewById(R.id.play);
date = (TextView) findViewById(R.id.recording_date);
title = (EditText) findViewById(R.id.edit_title);
notes = (EditText) findViewById(R.id.edit_notes);
saveButton = (Button) findViewById(R.id.save_edit_button);
mediaPlayer = new MediaPlayer();
DatabaseHelper.getInstance(getApplicationContext()).getMetadataAsync(
position, this);
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!isPlaying) {
playButton.setText(R.string.stop_text);
try {
mediaPlayer = new MediaPlayer();
mediaPlayer
.setDataSource("sdcard/test/"
+ date.toString() + ".3gp");
mediaPlayer.prepare();
mediaPlayer.start();
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.stop();
}
});
} catch (Exception e) {
Log.e(e.getClass().getName(), e.getMessage(), e);
}
} else {
playButton.setText(R.string.play_text);
mediaPlayer.release();
}
isPlaying = !isPlaying;
}
});
Dưới đây là các lỗi từ LogCat:
03-20 00:33:40.963: E/MediaPlayer(21268): error (1, -2147483648)
03-20 00:33:40.963: E/java.io.IOException(21268): Prepare failed.: status=0x1
03-20 00:33:40.963: E/java.io.IOException(21268): java.io.IOException: Prepare failed.: status=0x1
03-20 00:33:40.963: E/java.io.IOException(21268): at android.media.MediaPlayer.prepare(Native Method)
03-20 00:33:40.963: E/java.io.IOException(21268): at com.packagename.soundrecorder.RecorderEditActivity$1.onClick(RecorderEditActivity.java:56)
03-20 00:33:40.963: E/java.io.IOException(21268): at android.view.View.performClick(View.java:4204)
03-20 00:33:40.963: E/java.io.IOException(21268): at android.view.View$PerformClick.run(View.java:17355)
03-20 00:33:40.963: E/java.io.IOException(21268): at android.os.Handler.handleCallback(Handler.java:725)
03-20 00:33:40.963: E/java.io.IOException(21268): at android.os.Handler.dispatchMessage(Handler.java:92)
03-20 00:33:40.963: E/java.io.IOException(21268): at android.os.Looper.loop(Looper.java:137)
03-20 00:33:40.963: E/java.io.IOException(21268): at android.app.ActivityThread.main(ActivityThread.java:5041)
03-20 00:33:40.963: E/java.io.IOException(21268): at java.lang.reflect.Method.invokeNative(Native Method)
03-20 00:33:40.963: E/java.io.IOException(21268): at java.lang.reflect.Method.invoke(Method.java:511)
03-20 00:33:40.963: E/java.io.IOException(21268): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-20 00:33:40.963: E/java.io.IOException(21268): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-20 00:33:40.963: E/java.io.IOException(21268): at dalvik.system.NativeStart.main(Native Method)
Hy vọng rằng ai đó có thể giúp tôi giải thích và giải quyết vấn đề này. Tôi đã thực hiện rất nhiều nghiên cứu và không có gì tôi giúp. Cảm ơn :)
Trong mã của bạn 'đối tượng mediaPlayer' đang được tạo hai lần ví dụ: một lần bên ngoài vòng lặp và sau đó trong' chức năng onClick'. Bạn đã thử xóa đối tượng 'mediaPlayer' trước cuộc gọi' getInstance' chưa? – Ganesh
vui lòng đăng tệp bạn đang cố gắng phát –
bạn có trong tệp kê khai của bạn không? –