Tôi đang xây dựng một ứng dụng sẽ lưu giữ bộ đệm video thứ hai 60 giây. Việc quay video cần phải chạy trong một khoảng thời gian dài (24-48 giờ). Tôi dường như không có bất kỳ vấn đề nào với việc ghi âm, nhưng có vẻ như tôi mất kết nối với số Camera
hoặc Surface
sau một vài giờ.Quay video vô tận
Tôi đang đặt thời lượng tối đa: MediaRecorder.setMaxDuration(10 * 1000)
để ghi lại được chia thành 10 phân đoạn thứ hai.
Mỗi lần tôi khởi động lại bản ghi của mình, tôi đang tăng tệp đầu ra theo cách mà 6 tệp được sử dụng lại. Mục đích là để giữ một lịch sử 60 giây mọi lúc.
Nếu tôi dừng ghi sau 1-2 giờ thì video phát lại tốt. Tuy nhiên, nếu tôi để video chạy trong 3-4 giờ và dừng ghi, video chỉ hiển thị đầu ra màu đen với âm thanh. Nói cách khác, nó giống như bị mất kết nối với máy ảnh hoặc bề mặt nhưng vẫn tiếp tục ghi âm.
Có ai có thể giải thích hành vi này không?
Nếu không có cách nào khác, có cách nào tốt hơn để ghi lại X phân đoạn thứ hai của video không?
FYI: Tôi đang sử dụng khóa chế độ thức để màn hình/CPU ở lại.
Tôi chưa bao giờ thử bất cứ điều gì như thế. Nhưng nếu bạn có thể nhận được 1-2 giờ trong mà không có vấn đề sửa chữa bẩn nhanh chóng có vẻ như kết thúc() và khởi động lại hoạt động ghi âm của bạn. Nhưng điều đó sẽ khiến bạn có một khoảng trống trong video được ghi lại, đó là kích thước của thời gian khởi động hoạt động của bạn. Nếu bạn có 2 thiết bị, bạn có thể ghi lại từ cả hai lần và thời gian khởi động lại thay thế? – FoamyGuy
Hmm, ý tưởng thú vị. Trong thực tế, tôi tin rằng tôi có thể làm điều gì đó không đúng với các hoạt động ghi âm. Như trong, nó có thể * bình thường * có thể kết nối lại với máy ảnh, nhưng có thể có trường hợp 1% mà nó đi trước chính nó (MediaRecorder không hoàn tất việc ghi/đóng tệp xuất khi tôi cố bắt đầu ghi lại?) –