2011-01-28 4 views
2

오디오 대기열을 사용하여 음성 사용자 입력을 녹음하는 응용 프로그램이 있습니다. 짧은 기간 동안 만 사용자가 버튼을 누르면 발생합니다.녹음 중 배경 오디오를 음소거하는 방법 (오디오 대기열 서비스 사용)

녹음을 실제로 수행 할 때마다 음소거를 설정하거나 훨씬 낮은 볼륨으로 재생한다는 점을 제외하고 사용자의 배경 음악이 계속 재생되도록 허용하고 싶습니다.

내 녹음 큐에 대해 PlayAndRecord 범주를 사용하고 있으며 OverrideCategoryMixWithOthers 속성을 true로 설정했습니다.

답변

3

이 문제는 iOS4 +에서 AudioSessionSetActiveWithFlags API와 kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation 플래그를 추가 할 때 문제가되지 않았습니다.

녹음 중에 배경 음악을 일시 중지하려면 AudioSessionSetActive (false)를 호출해야합니다. 그러면 오디오 세션이 비활성화되고 범주가 PlayAndRecord 모드로 전환되며 OverrideCategoryMixWithOthers 속성이 false로 설정됩니다.

이제 AudioSessionSetActive (true)로 세션을이 설정으로 다시 활성화하면 iPod/Pandora/etc의 오디오 세션이 중단되고 페이드 아웃되고 일시 중지됩니다.

그런 다음 녹화가 완료되면, 다시

AudioSessionSetActiveWithFlags (거짓, kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation)를 사용하여 세션을 비활성화;

이렇게하면 배경 음악 앱에 더 이상 세션이 중단되지 않고 음악 재생을 시작할 수 있음을 알립니다.

마지막으로 MediaPlayback (또는 동등 물) 모드를 사용하고 OverrideCategoryMixWithOthers 속성을 다시 true로 설정하여 오디오 세션을 다시 설정할 수 있습니다.