2012-07-03 19 views
33

Ứng dụng của tôi sử dụng micrô và đầu ra âm thanh, vì vậy tôi đang đặt Phiên âm thanh của mình thành Danh mục Play và Record, nhưng điều này dường như vô hiệu hóa Airplay. Nếu tôi thiết lập thể loại để chơi, Airplay hoạt động tốt với đầu ra của tôi (nhưng rõ ràng là đầu vào không hoạt động).AVAudioSessionCategoryPlayAndRecord với Airplay

Tôi đã cố gắng ghi đè tuyến đầu ra cho loa, trong trường hợp cần thiết để xuất trên Airplay, nhưng không có niềm vui.

Bất kỳ ý tưởng nào?

+0

Chúng tôi có thể thấy mã của bạn nơi bạn thiết lập Phiên âm thanh không? –

Trả lời

0

Nếu bạn muốn thay đổi vị trí của âm thanh, bạn cần gọi AudioSessionSetProperty và chuyển nó liên tục chỉ định nơi bạn muốn âm thanh đi. Những hằng số là

kAudioSessionOverrideAudioRoute_None, xác định rằng bạn muốn âm thanh để được chuyển đến người nhận (yêu cầu lên sóng nếu đó là nơi nó đang xảy ra), hoặc

kAudioSessionOverrideAudioRoute_Speaker, xác định rằng âm thanh nên được chuyển đến các loa ở dưới cùng của điện thoại.

0

Bạn có thể thử mã này

thiết bị
// Set AVAudioSession 
NSError *sessionError = nil; 
[[AVAudioSession sharedInstance] setDelegate:self]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError]; 

// Change the default output audio route 
UInt32 doChangeDefaultRoute = 1; 
AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, 
    sizeof(doChangeDefaultRoute), &doChangeDefaultRoute); 
+0

AudioSessionSetProperty không được chấp nhận – mark

3

AirPlay gì bạn đang cố gắng sử dụng không? 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?

+0

Đây là câu trả lời đúng. – mark

0

Từ Hướng dẫn âm thanh phiên Lập trình> Làm việc với Danh mục>Choosing Categories and Modes for AirPlay:

Chỉ cụ thể loại và phương thức hỗ trợ AirPlay. Các loại sau đây hỗ trợ cả hai phiên bản nhân đôi và phi nhân đôi của Airplay:

  • AVAudioSessionCategorySoloAmbient
  • AVAudioSessionCategoryAmbient
  • AVAudioSessionCategoryPlayback

Phạm trù AVAudioSessionCategoryPlayAndRecord chỉ hỗ trợ Airplay được nhân đôi.

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