Tôi đã tạo một ứng dụng ghi âm giọng nói và tôi muốn hiển thị thời lượng của bản ghi trong một listview. Tôi lưu các bản ghi như thế này:lấy thời lượng của tệp âm thanh
MediaRecorder recorder = new MediaRecorder();
recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
folder = new File(Environment.getExternalStorageDirectory()
+ File.separator + "Audio recordings");
String[] files = folder.list();
int number = files.length + 1;
String filename = "AudioSample" + number + ".mp3";
File output = new File(Environment.getExternalStorageDirectory()
+ File.separator + "Audio recordings" + File.separator
+ filename);
FileOutputStream writer = new FileOutputStream(output);
FileDescriptor fd = writer.getFD();
recorder.setOutputFile(fd);
try {
recorder.prepare();
recorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
Log.e(LOG_TAG, "prepare() failed");
e.printStackTrace();
}
Làm cách nào để có được thời lượng trong tệp này?
Cảm ơn trước
--- EDIT tôi nhận nó làm việc, tôi gọi MediaPlayer.getduration() bên trong MediaPlayer.setOnPreparedListener() phương pháp để nó trở 0.
Cố gắng đó, nhưng nó luôn luôn trả về 0 đối với một số lý do – Simon
Đừng bận tâm tôi làm việc đó! Tôi gọi là MediaPlayer.getDuration() trong phương thức MediaPlayer.setOnPreparedListener và trả về 0 – Simon