Tôi đã thử sử dụng API camera2. Tôi đã tải xuống mã từMáy ảnh Android 2 Api
https://developer.android.com/samples/Camera2Video/index.html để tìm hiểu cách hoạt động của mã. Nó hoạt động tốt cho đến khi tôi dừng ghi âm. Khi tôi dừng ghi nó chạy theo mã.
private void stopRecordingVideo() {
// UI
mIsRecordingVideo = false;
mBtn_Video.setText(R.string.record);
// Stop recording
try {
mMediaRecorder.stop();
mMediaRecorder.reset();
}
catch (Exception e) {
e.printStackTrace();
}
Activity activity = getActivity();
if (null != activity) {
System.out.println("file " + getVideoFile(activity));
Toast.makeText(activity, "Video saved: " + getVideoFile(activity),
Toast.LENGTH_SHORT).show();
}
startPreview();
tại mMediaRecorder.stop(); nó ném sau lỗi
01-12 16:24:23.115 2161-2200/com.cameratwoapi E/Surface﹕ queueBuffer: error queuing buffer to SurfaceTexture, -19
01-12 16:24:23.135 2161-2200/com.cameratwoapi E/EGL_emulation﹕ tid 2200: swapBuffers(285): error 0x3003 (EGL_BAD_ALLOC)
01-12 16:24:23.197 2161-2200/com.cameratwoapi E/CameraDeviceGLThread-0﹕ Received exception on GL render thread:
java.lang.IllegalStateException: swapBuffers: EGL error: 0x3003
at android.hardware.camera2.legacy.SurfaceTextureRenderer.checkEglError(SurfaceTextureRenderer.java:487)
at android.hardware.camera2.legacy.SurfaceTextureRenderer.swapBuffers(SurfaceTextureRenderer.java:480)
at android.hardware.camera2.legacy.SurfaceTextureRenderer.drawIntoSurfaces(SurfaceTextureRenderer.java:681)
at android.hardware.camera2.legacy.GLThreadManager$1.handleMessage(GLThreadManager.java:103)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
Bất kỳ ý tưởng nào tôi đang làm sai. Tôi đã dành vài giờ nhưng không thể tìm thấy bất kỳ giải pháp nào.
Chỉnh sửa - Tôi đang sử dụng trình giả lập geneymotion. Con đường tôi đang sử dụng
tập tin /storage/emulated/0/Android/data/com.gold.cameratwoapi/files/video.mp4
Cảm ơn
Lỗi EGL 0x3003 dành cho "Phân phối không đúng". Đã xảy ra sự cố trong bộ nhớ ... – shkschneider
Bạn đã thử gỡ lỗi và xem cuộc gọi cụ thể nào đang gây ra các sự cố trên chưa? Ngoài ra, vì bạn có thể lưu video của mình, bạn có đảm bảo rằng bạn đã thêm quyền 'WRITE_EXTERNAL_STORAGE' vào tệp kê khai ứng dụng của mình không? – Willis
Cảm ơn cả hai, @Willis tôi đã viết quyền trong tệp kê khai. Tôi đang sử dụng đường dẫn này để lưu trữ tệp /storage/emulated/0/Android/data/com.gold.cameratwoapi/files/video.mp4. Vấn đề này xảy ra tại mMediaRecorder.stop(); – user1154390