2010-07-07 46 views
6

Có cách nào để cho phép người dùng chọn thiết bị họ sử dụng cho đầu ra âm thanh không?Chọn thiết bị Âm thanh trên iPhone

Trong các tài liệu tôi đã phát hiện ra rằng bạn có thể chọn lộ trình để sử dụng bằng cách thiết lập kAudioSessionProperty_OverrideAudioRoute cho một trong hai:

  • kAudioSessionOverrideAudioRoute_None, hoặc
  • kAudioSessionOverrideAudioRoute_Speaker

Tuy nhiên tôi muốn cho phép người dùng sử dụng tai nghe Bluetooth của họ để nghe âm thanh.

Nếu bạn nhìn vào ứng dụng 'Ghi nhớ giọng nói' của Apple, trong menu phát lại, có nút ở trên cùng bên trái cho phép bạn chọn thiết bị âm thanh nào sẽ sử dụng. Khi một tai nghe Bluetooth được đính kèm, bấm nút sẽ trả về một thực đơn mà làm cho nó có thể chọn giữa:

  • tai nghe Bluetooth
  • iPhone
  • loa

Có cách nào để đạt được chức năng này sử dụng các API Apple tiêu chuẩn trong ứng dụng của riêng tôi?

Trả lời

13

Trong 3.1 có hai giao thức hỗ trợ xuất âm thanh sang thiết bị bluetooth và việc sử dụng tùy thuộc vào phụ kiện. Đầu tiên là A2DP được sử dụng với accessores hỗ trợ nhận âm nhạc stereo, và khác là bàn tay miễn phí cho tất cả các phụ kiện rảnh tay. Để kích hoạt tùy chọn đầu tiên, bạn cần sử dụng lớp MPVolumeView có thanh trượt âm lượng và nút chọn thiết bị âm thanh, khi chế độ xem này được thêm vào bất kỳ chế độ xem nào trong ứng dụng, nó cung cấp cách để người dùng đặt khối lượng và chọn một thiết bị BT nếu kết nối (đây là cách duy nhất tôi tìm thấy) Mặt khác, tùy chọn thứ hai có thể được kích hoạt bằng cách sử dụng cuộc gọi

UInt32 bt = TRUE; 
result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt); 

các appliction phải khởi tạo phiên âm và sử dụng corect catagory (nó phải hỗ trợ mã hóa để làm việc này). Sau khi EnableBluetoothInput được thiết lập tất cả các đầu vào và đầu ra âm thanh sẽ được chuyển qua thiết bị rảnh tay (nếu kết nối tất nhiên :))

1

Cách đơn giản nhất là thêm một điều khiển MPVolume (link to documentation) vào giao diện người dùng của bạn và đặt showsVolumeSlider = NO và showsRouteButton = YES.

Người dùng sẽ có nút tuyến đường để định tuyến âm thanh tới thiết bị mà họ chọn.

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