2009-10-23 40 views
6

Trong ứng dụng tôi ghi và phát âm thanh cùng một lúc. Ứng dụng sắp hoàn tất. Nhưng có một điều, điều đó làm tôi khó chịu. Khi phiên âm thanh được đặt thành PlayAndRecord, âm thanh trở nên yên tĩnh so với cùng âm thanh với danh mục SoloAmbient. Có cách nào để làm cho âm thanh to hơn bằng PlayAndRecord không?iPhone SDK audioSession question

Trả lời

7

khi bạn sử dụng phiên để phát và ghi, phát lại phát ra từ loa được sử dụng cho điện thoại, nếu không loa sẽ nằm ở dưới cùng của điện thoại. điều này là để ngăn chặn phản hồi. bạn có thể ghi đè này như vậy (nhưng xem ra cho phản hồi, không phải là một vấn đề nếu bạn không làm cả hai cùng một lúc)

//when the category is play and record the playback comes out of the speaker used for phone conversation to avoid feedback 
    //change this to the normal or default speaker 

    UInt32 doChangeDefaultRoute = 1;   
    AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof (doChangeDefaultRoute), &doChangeDefaultRoute); 

mã này hoạt động trên 3.1.2, trước sdk của bạn phải làm khác đi.

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker; 
    status = AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof (audioRouteOverride), &audioRouteOverride); 

bạn phải cẩn thận với phương pháp này, nó sẽ ghi đè ngay cả khi bạn cắm tai nghe, bạn phải theo dõi gián đoạn và thay đổi các tuyến đường tương ứng. tốt hơn bây giờ sử dụng 3.1.2

-1

Yêu cầu người dùng cắm tai nghe?

Kết hợp tai nghe + mic không gặp phải sự cố này.

Tôi không biết đó có phải là lỗi hay không, hậu quả của phần cứng âm thanh, hoặc nếu phát lại yên tĩnh chỉ là một cách ghi âm rõ ràng và hamfisted .

CẬP NHẬT

tôi phát hiện ra rằng thiết lập các phiên PlayAndRecord thay đổi đường âm thanh của bạn với máy thu.
Dường như trường hợp sử dụng dành cho các ứng dụng điện thoại nơi người dùng giữ thiết bị gần tai.

Nếu điều đó không vi phạm Nguyên tắc Ít bất ngờ nhất, tôi không biết điều gì xảy ra.