看來,這是不可能的發揮警報聲播放警報聲音(振動)雖然AudioQueue被記錄
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
而AudioQueue正用於錄製音頻。那是對的嗎?也許我做錯了什麼。有沒有辦法做到這一點,而不是暫停錄音?
TIA。
看來,這是不可能的發揮警報聲播放警報聲音(振動)雖然AudioQueue被記錄
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
而AudioQueue正用於錄製音頻。那是對的嗎?也許我做錯了什麼。有沒有辦法做到這一點,而不是暫停錄音?
TIA。
從閱讀蘋果的開發者論壇,幾位開發者聲稱這是一個已經提交的bug。如果你將會話類型設置爲kAudioSessionCategory_PlayAndRecord,它應該可以工作,但不會。
如果您要引用您指的論壇帖子,我會將此獎勵給您。 – 2009-08-15 03:55:50
具體的帖子是: https://devforums.apple.com/message/79080 – justinb 2009-09-04 08:11:16
只是一個瘋狂的猜測,但你的音頻會話設置爲kAudioSessionCategory_PlayAndRecord
?
好的。所以我將此添加到AudioQueue初始化代碼中: UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(audioCategory),&audioCategory); 但我仍然有同樣的問題,例如playalertsound不會導致設備在錄製時震動。任何其他想法? 謝謝。 – 2009-07-27 15:04:03
試試這個:
UInt32 category = kAudioSessionCategory_PlayAndRecord;
status |= AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
UInt32 allowMixing = true;
status |= AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, // 1
sizeof(allowMixing), // 2
&allowMixing); // 3
status |= AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck, // 1
sizeof(allowMixing), // 2
&allowMixing); // 3
最後兩個AudioSessionSetProperty
電話是在3.0 OS新。這些使我能夠在錄製過程中播放聲音以及震動。
我試過什麼sehugg建議,但沒有運氣?你像這樣活躍嗎?
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
UInt32 doSetProperty = 1;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(doSetProperty), &doSetProperty);
AudioSessionSetProperty (kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(doSetProperty), &doSetProperty);
[[AVAudioSession sharedInstance] setActive: YES error: nil];
聲音非常安靜,因爲當您激活VAudioSessionCategoryPlayAndRecord時,SDK通過聽筒揚聲器發出聲音。這大概是爲了防止錄音中的反饋。在PlayAndRecord模式下,您必須手動覆蓋音頻路線才能將輸出再次發送到揚聲器。就像這樣:
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,
sizeof(UInt32), &audioRouteOverride);
我很好奇振動是否會在錄音中顯示爲聲音。 – 2009-08-14 18:49:42