Tôi đã cố gắng để lấy danh sách các thiết bị có sẵn đầu vào âm thanh trên iPhone bằng cách sử dụng mã này:kAudioSessionProperty_InputSources thực sự tốt cho điều gì?
CFArrayRef arrayRef;
UInt32 size = sizeof(arrayRef);
OSStatus status = AudioSessionGetProperty(kAudioSessionProperty_InputSources, &size, &arrayRef);
assert(status == noErr);
NSArray *array = (__bridge NSArray *)arrayRef;
Các công trình cuộc gọi và trả về mà không có lỗi, nhưng các mảng kết quả luôn luôn là trống rỗng, không có vấn đề gì phần cứng Tôi đã kết nối với nó. Tôi đã thử hai tai nghe thông thường cho điện thoại di động, một tai nghe gốc từ Apple và một từ Samsung và hai loại micro USB (một iXY from Rode và iM2X from Tascam), nhưng mảng luôn luôn trống. Vì vậy, tôi tự hỏi những loại nguồn đầu vào nào thực sự sẽ được liệt kê bởi tài sản này? Nó có thể sử dụng được không?
Bằng cách sử dụng gọi lại người nghe trên các tuyến âm thanh, tôi đã có thể xác minh rằng tất cả 4 thiết bị được phát hiện chính xác. Tôi cũng có thể ghi lại âm thanh với từng thiết bị, vì vậy tất cả chúng đều hoạt động bình thường. Tôi sử dụng iPhone 4S với iOS 6.1.3 (10B329).
Hình như bạn là đúng. "' kAudioSessionProperty_InputSources' "chỉ dành cho đầu vào âm thanh dựa trên USB. Đó là điều không may, vì không có cách nào không được dùng để nhận tất cả các đầu vào âm thanh thông qua các chức năng Core Foundation/C (không phải là Objective-C cụ thể). –
@MichaelDautermann Cảm ơn bạn, tôi đồng ý rằng điều đó là không may, vì các lựa chọn thay thế cấp cao hơn sẽ mang lại nhiều chi phí hơn. – Bamsworld
@MichaelDautermann và những người khác, bạn có thể cho tôi biết lựa chọn thay thế Mục tiêu-C nào có để có được các thiết bị đầu vào không kết nối máy ảnh không? Có phải đó là câu hỏi được Shawn Hershey đề cập trong câu trả lời cho câu hỏi này không? –