Tôi đang cố gắng ghi lại âm thanh, sử dụng phương thức trong this question; với AVCaptureSession và AVCaptureAudioDataOutput. Điều này dường như làm việc tốt với 1 sự bất tiện: nó không hoạt động trong trình mô phỏng. Cả AVAudioRecorder và ứng dụng demo SpeakHere cũ tốt, hoạt động tốt trong trình mô phỏng, sử dụng micrô bên trong trên MacBook Pro của tôi.AVCapturePhiên cho âm thanh trong trình mô phỏng
Vấn đề là [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]
cho null
trong mô phỏng, code để sau này không thành công với thông điệp (khi nó cố gắng thêm null
làm đầu vào cho AVCaptureSession):
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Can't add <AVCaptureDeviceInput: 0x9138b40 [(null)]> because the device does not support AVCaptureSessionPresetHigh. Use -[AVCaptureDevice supportsAVCaptureSessionPreset:].'
Có một cách dễ dàng để có được điều này để làm việc trong trình mô phỏng?
Tôi không biết tại sao thiết lập AVCaptureSession không hoạt động, tuy nhiên nếu bạn không nhất thiết phải kiểm tra bản ghi trên trình mô phỏng nhưng chỉ trên thiết bị, bạn vẫn có thể loại trừ phần ghi trên iOS-Simulator bằng cách sử dụng: # nếu TARGET_IPHONE_SIMULATOR // Mã mô phỏng ở đây #else // Mã "thiết bị iOS" thực tại đây #endif Điều này sẽ ngăn chặn sự cố ứng dụng trên trình mô phỏng. – Markus