Tôi đang cố gắng tạo một máy quay video trên Android, và tôi đã chuẩn bị mã của tôi được cho là đang hoạt động - nhưng tôi liên tục nhận được thông báo lỗi start failed: -19
.Android MediaRecorder - "bắt đầu thất bại: -19"
Dưới đây là mã của tôi:
public boolean startRecording() {
try {
camera.unlock();
mediaRecorder = new MediaRecorder();
mediaRecorder.setOnErrorListener(new MediaRecorder.OnErrorListener() {
@Override
public void onError(MediaRecorder mr, int what, int extra) {
Log.i(TAG, "Error");
}
});
mediaRecorder.setCamera(camera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
Log.i(TAG, "a");
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
Log.i(TAG, "b");
mediaRecorder.setMaxDuration(maxDurationInMs); // set to 20000
String uniqueOutFile = OUTPUT_FILE + System.currentTimeMillis() + ".3gp";
File outFile = new File(uniqueOutFile);
if (outFile.exists()) {
outFile.delete();
}
mediaRecorder.setOutputFile(uniqueOutFile);
mediaRecorder.setVideoFrameRate(videoFramesPerSecond); // set to 20
mediaRecorder.setVideoSize(sView.getWidth(), sView.getHeight());
Log.i(TAG, "c");
mediaRecorder.setPreviewDisplay(holder.getSurface());
mediaRecorder.setMaxFileSize(maxFileSizeInBytes); // set to 50000
mediaRecorder.prepare();
Log.i(TAG, "d");
mediaRecorder.start();
Log.i(TAG, "e");
return true;
} catch (IllegalStateException e) {
Log.i(TAG, "f");
Log.e(TAG, e.getMessage());
e.printStackTrace();
camera.lock();
return false;
} catch (IOException e) {
Log.i(TAG, "g");
Log.e(TAG, e.getMessage());
e.printStackTrace();
camera.lock();
return false;
} catch (RuntimeException e) {
Log.i(TAG, "h");
Log.e(TAG, e.getMessage());
camera.lock();
return false;
}
}
Tất cả các bản ghi gỡ lỗi (từ "a" thông qua "d") được in trong nhật ký, vì vậy nó có vẻ như tất cả các bước tối đa mediaRecorder.prepare()
được thực hiện đúng cách. Sau đó, nó bắt được RuntimeException
với thông báo start failed: -19
. Có một số question tương tự, nhưng điều đó không giải quyết được vấn đề của tôi.
Có lý do nào khác để nhận được lỗi như vậy không?
không làm việc trên samsung Duos lớn – Neji
Bình luận đường ra này sẽ ném lực lượng đóng trên Samsung Các thiết bị như GN2, GS. Đây không phải là một giải pháp. Mặc dù tôi chưa bắt đầu sử dụng Android từ lâu, nhưng bây giờ tôi đã bị bệnh Android!Họ chỉ cho phép các nhà sản xuất tự do làm cho các điện thoại không có tiêu chuẩn. – Dante
Làm cách nào bạn có thể chỉ định kích thước video nếu bạn xóa dòng này? – TOP