2010-07-12 32 views
11

Theo tài liệu, http://developer.android.com/reference/android/media/MediaRecorder.html#setMaxDuration(int)MediaRecorder.setMaxDuration (int timer) những gì sẽ xảy ra khi bộ đếm thời gian hết hạn

sẽ ngừng quay khi bộ đếm thời gian hết hạn.

Bằng cách dừng lại, chúng có nghĩa là nó gọi nội bộ ghi âm.stop() và sau đó khôi phục trạng thái của ứng dụng trước khi gọi máy ghi âm.start()?

+0

Bạn có thể tìm câu trả lời cho câu hỏi của bạn không? –

Trả lời

1

Điều này được xử lý bởi OpenCore trong nội bộ và trạng thái của máy ghi sau khi đạt đến thời lượng tối đa là chưa được khởi tạo, vì nó được gọi là stop(). Bạn đã thiết lập lại máy ghi âm để sử dụng thêm nữa.

+0

sự cố là các lần thoát ứng dụng của tôi (màn hình sẽ trống khi bộ hẹn giờ hết hạn). Điều đó không được cho là xảy ra. Nó sẽ dừng ghi lại một cách duyên dáng và trở về trạng thái xem trước (trạng thái nó đã ở trước khi tôi nhấn bản ghi). điều đó có thể không? Cũng có thể, để tự xử lý nó như trong inInfo nếu (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {tôi có thể gọi hàm của riêng tôi gọi là recorder.stop() ở đây không? } – Namratha

+0

Tôi đã thử gọi chức năng của riêng mình như tôi đã đề cập nhưng nó đã bị lỗi giống như trước đây – Namratha

+0

Điều được mô tả ở trên là những gì được cho là xảy ra nhưng theo kinh nghiệm của tôi không phải điều thực sự xảy ra. – vanevery

34

Tôi nhận thấy rằng tôi phải triển khai MediaRecorder.OnInfoListener và dừng thủ công bản ghi tại thời điểm đó. Khi đã xong, MediaRecorder sẽ quay lại trạng thái ban đầu và tất cả thiết lập bình thường phải được thực hiện lại để bắt đầu ghi lại.

public class VideoCapture extends Activity implements MediaRecorder.OnInfoListener { 

    public void startVideoRecording() { 
     // Normal MediaRecorder Setup 
     recorder.setMaxDuration(10000); // 10 seconds 
     recorder.setOnInfoListener(this); 
    } 

    public void onInfo(MediaRecorder mr, int what, int extra) { 
     if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) { 
     Log.v("VIDEOCAPTURE","Maximum Duration Reached"); 
     mr.stop(); 
     } 
    } 
} 
+7

Điều quan trọng không phải là để quên ** recorder.setOnInfoListener (this) ** –

+2

hoặc Sử dụng nặc danh lớp recorder.setOnInfoListener (OnInfoListener mới() { \t \t \t \t @ Override \t \t \t \t public void onInfo (MediaRecorder mr , int gì, int thêm) { \t \t \t \t \t if (những gì == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) { \t \t \t \t \t \t mr.stop(); \t \t \t \t \t} \t \t \t \t} \t \t \t}); –

Các vấn đề liên quan