2012-10-30 27 views
12

Tôi đang gặp phải vấn đề sau đây: AirPlay trở nên không có sẵn bất cứ khi nào tôi đặt mục chơi-và-kỷ lục với phiên âm thanh trong ứng dụng của tôi:AVAudioSessionCategoryPlayAndRecord làm AirPlay vô hình

[[AVAudioSession sharedInstance] 
     setCategory: AVAudioSessionCategoryPlayAndRecord 
     error: &setCategoryError]; 

Cuộc gọi này làm cho AirPlay biến mất và tạo lại đường âm thanh cho loa ngay lập tức.

Sự cố có thể được sao chép dễ dàng, ví dụ: trên dự án mẫu avTouch từ tài liệu Xcode bằng cách thay thế AVAudioSessionCategoryPlayback danh mục bằng AVAudioSessionCategoryPlayAndRecord: trong ví dụ ban đầu, trình chọn AirPlay hiển thị và cho phép thay đổi nguồn đầu ra, trong khi danh mục chọn là biến thể biến mất.

Có cách nào thích hợp để chuyển sang mục AVAudioSessionCategoryPlayAndRecord để AirPlay vẫn khả dụng không?

(Một câu hỏi thế này đã được already asked, nhưng đã không nhận được bất kỳ câu trả lời).

+0

Có thể bạn phải thử một số API riêng tư. Kiểm tra xem điều này có giúp ích gì không. http://spin.atomicobject.com/2012/04/23/ios-mirroring-and-programmatic-airplay-selection/ Họ đang đề cập đến một số apis riêng tư. – iDev

+1

@ACB: cảm ơn bạn! Tôi đã xem bài viết đã đề cập, nhưng như bạn nói, họ đang sử dụng các API riêng tư mà tôi không thể sử dụng vì dự án tôi đang làm việc được phân phối thông qua App Store. – Anastasia

+0

@Anastasia Bạn đã có giải pháp chưa? Tôi đang gặp vấn đề tương tự với bạn.Thanks – Jacky

Trả lời

-1

Vâng, AirPlay và các loại PlayAndRecord chỉ là không tương thích. Đó là những gì tôi đã học được từ các diễn đàn của Apple.

Tại sao bạn cần đầu vào âm thanh trên thiết bị khi đầu ra âm thanh xảy ra ở một nơi khác?

+1

Ứng dụng phát lại luồng video (có thể xuất âm thanh qua AirPlay) và ghi lại luồng đã nói cùng một lúc. Có ý nghĩa? – Anastasia

+0

Vấn đề là, âm thanh hoạt động như mong đợi đối với tai nghe được cắm vào, vì vậy đó là giả thiết tự nhiên của tôi rằng tai nghe kết nối AirPlay cũng hoạt động tương tự. – Anastasia

+0

-1: Có rất nhiều lý do tại sao bạn có thể muốn. Một khách hàng của tôi muốn sử dụng phần mềm giám sát âm thanh của tôi để thực hiện kiểm tra phản hồi phòng bằng cách phát âm thanh trên sóng phát và sau đó theo dõi những gì bản ghi iPhone (ở chế độ đo). Vì vậy, gây phiền nhiễu mà táo chặn này hoàn toàn. – Goz

0

Tôi nghĩ bạn nên thêm mã bên dưới AVAudioSession. Tôi hy vọng nó hoạt động.

NSError *setCategoryError = nil; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: &setCategoryError]; 

if (setCategoryError) { 
    // Handle error 
} 
1

Bạn đang cố gắng sử dụng thiết bị AirPlay nào? Nó có microphone không?

Nếu không, iOS sẽ không hiển thị tùy chọn này khi sử dụng danh mục PlayAndRecord, vì thiết bị đó không thể phát bản ghi . Nó sẽ hiển thị khi sử dụng danh mục Play.

Ngoài ra, nếu thiết bị bạn đang sử dụng là thiết bị Bluetooth, bạn có đặt AVAudioSessionCategoryOptionAllowBluetooth thành YES không?

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