Tôi đang sử dụng AVCaptureSession để quay video có âm thanh. Mọi thứ dường như hoạt động tốt cho các video ngắn, nhưng vì một lý do nào đó, nếu tôi quay video dài hơn khoảng 12 giây, âm thanh sẽ không hoạt động.Âm thanh AVCaptureSession không hoạt động đối với video dài
Trả lời
Tôi đã tìm thấy giải pháp là an answer to a completely different question.
Sự cố là thuộc tính movieFragmentInterval
trong AVCaptureMovieFileOutput.
Các tài liệu cho thuộc tính này giải thích những gì những mảnh vỡ là:
Một QuickTime phim bao gồm các mẫu phương tiện truyền thông và một bảng mẫu xác định vị trí của họ trong file. Tệp phim không có mẫu không thể đọc được.
Trong tệp được xử lý, bảng mẫu thường xuất hiện ở đầu tệp . Nó cũng có thể xuất hiện ở cuối tệp, trong trường hợp tiêu đề chứa con trỏ tới bảng mẫu ở đầu . Khi một tập tin phim mới đang được ghi lại, không thể viết bảng mẫu vì kích thước của tệp chưa được biết. Thay vào đó, bảng phải được viết khi quá trình ghi hoàn tất. Nếu không thực hiện hành động nào khác, điều này có nghĩa là nếu bản ghi không hoàn tất thành công (ví dụ, trong trường hợp xảy ra sự cố), tệp dữ liệu không sử dụng được (vì không có bảng mẫu). Theo định kỳ chèn "đoạn phim" vào tệp phim, bảng mẫu có thể được tăng lên một cách từng bước. Điều này có nghĩa là nếu tệp không được viết hoàn toàn , thì tệp phim vẫn có thể sử dụng được (đến điểm mà đoạn cuối cùng đã được viết).
Nó cũng nói:
Giá trị mặc định là 10 giây. Đặt thành kCMTimeInvalid để tắt phim viết đoạn (thường không được khuyến nghị).
Vì vậy, vì lý do nào đó, bản ghi của tôi bị rối tung lên bất cứ khi nào đoạn văn được viết. Tôi vừa thêm dòng movieFileOutput.movieFragmentInterval = kCMTimeInvalid;
(trong đó movieFileOutput
là AVCaptureMovieFileOutput mà tôi đã thêm vào AVCaptureSession) để tắt tính năng viết đoạn và âm thanh hiện hoạt động.
Cập nhật videoFileOutput.movieFragmentInterval = kCMTimeInvalid
giải quyết vấn đề này cho tôi.
Tuy nhiên, tôi vô tình đặt movieFragmentInterval
sau khi gọi startRecordingToOutputFileURL
. Một giờ đau đớn sau đó tôi nhận ra sai lầm của mình. Đối với những người mới như tôi, lưu ý chuỗi rõ ràng này.
videoFileOutput.movieFragmentInterval = kCMTimeInvalid
videoFileOutput.startRecordingToOutputFileURL(filePath, recordingDelegate: recordingDelegate)
Chúng tôi cũng gặp phải sự cố này. Về cơ bản việc vô hiệu hóa việc viết đoạn phim sẽ hoạt động nhưng nó không thực sự giải thích vấn đề. Nhiều khả năng bạn đang ghi vào tệp đầu ra bằng cách sử dụng đuôi tệp không hỗ trợ tính năng này, như mp4
. Nếu bạn chuyển một tập tin đầu ra với phần mở rộng mov
, bạn sẽ không gặp vấn đề gì khi sử dụng đoạn văn bản phim và tập tin đầu ra sẽ có âm thanh.
- 1. AVCaptureSession Ghi lại Video Với Âm thanh
- 2. Âm thanh không ghi trong AVCaptureSession
- 3. AVPlayer mắc kẹt video, nhưng âm thanh hoạt động
- 4. AudioServicesPlaySystemSound trong khi AVCaptureSession đang hoạt động
- 5. AVCaptureSession addInput gây trục trặc trong âm thanh nền
- 6. Âm thanh không hoạt động trong html5
- 7. Mã này để ghi video + âm thanh qua AVAssetWriter và AVAssetWriterInputs không hoạt động. Tại sao?
- 8. Phần tử âm thanh không hoạt động đúng với Safari
- 9. .NET Video Chat Âm thanh
- 10. video android, nghe âm thanh nhưng không có video
- 11. Âm thanh cục bộ không hoạt động ở Icecomm
- 12. iOS: Âm thanh và video từ Airplay
- 13. Âm thanh dải Android từ video
- 14. Trộn âm thanh/video có độ dài khác nhau với ffmpeg
- 15. Soạn video và âm thanh bằng AVMutableComposition
- 16. Mức hoạt động âm thanh từ micrô chỉ với javascript
- 17. AVFoundation: Video kết nối OpenGL hoạt động - Cách phát và đồng bộ hóa âm thanh?
- 18. thẻ âm thanh không hoạt động trong IE9
- 19. MPMediaPickerController với các loại phương tiện video không hoạt động
- 20. Âm thanh không hoạt động trong Trình mô phỏng iPhone?
- 21. API âm thanh web: noteOn after noteOff không hoạt động?
- 22. Video AVPlayer Trống nhưng Nghe Âm thanh
- 23. Âm thanh HTML5 không hoạt động trên Firefox
- 24. Nhận âm thanh từ video html5
- 25. Phát âm thanh/Video không thành công bằng SimpleHTTPServer
- 26. ffmpeg đang tạo tệp âm thanh/video không đồng bộ
- 27. Ghi video và phát âm thanh cùng lúc ios
- 28. Âm thanh hệ thống iOS với các phiên âm thanh tùy chỉnh
- 29. Trình phát video Html phát âm thanh nhưng không phải là video
- 30. Avfoundation - Phát và quay video (cùng với âm thanh và xem trước) đồng thời