팟 캐스트 앱에서 작업하고 있습니다. 이것은 AVAudioSessionCategoryPlayback
세션 유형을 사용하여 오디오를 재생합니다. 이것은 제가하고 싶은 거의 모든 것을합니다. 다른 재생중인 음악을 일시 중지하고 전화가 왔을 때 중단되며 일반적으로 원하는대로 정확하게 작동합니다.AVAudioSession이 "더킹 (ducked)"될 때 감지
예외. 우선 순위가 높은 오디오가 재생되면 (예 : 내비게이션 단계별 앱 실행) 내 애플리케이션의 오디오는 볼륨이 낮아 지지만 계속 실행됩니다. 이것은 원하지 않는 두 목소리의 끔찍한 혼합을 만듭니다. 대신 응용 프로그램의 오디오가 재생 된 사운드 중에 일시 중지 한 다음 끝나면 다시 계속하는 것이 좋습니다.
다른 AVAudioSession 속성 (예 : AVAudioSessionCategoryOptionMixWithOthers
)을 변경해 보았습니다. 그러나 이는 우선 순위가 낮은 소리가 내 응용 프로그램과 어떻게 혼합되어 있는지 만 변경합니다. 광산이 우선 순위가 높은 소리와 어떻게 섞여 있는지는 바뀌지 않습니다. 나는 또한 sharedSession
의 otherAudioPlaying
속성을 관찰 해 보았습니다.하지만이 짧은 클립이 오버레이 될 때 변경 사항이 발생하지 않았습니다.
내 앱의 오디오가 더킹되지 않을 때이를 감지하여 일시 중지시킬 수있는 방법이 있습니까? 또는 내 앱의 오디오가 더킹되지 않도록 차단하여 이러한 다른 사운드를 중단으로 간주 할 수 있습니까?
감사합니다.
'kAudioSessionBeginInterruption'과'kAudioSessionEndInterruption'을 사용해 보셨나요? – iwasrobbed
예.하지만 AVAudioSession에 관한 한 오버레이 덕킹은 '중단'으로 간주되지 않습니다. 따라서 이러한 콜백/알림은 시작되지 않습니다. –
당신이해야한다고 생각한다면 애플에 레이더 파일을 보내고 싶을 것입니다. 필자의 견해로는 오디오 세션 중단으로 간주해야한다는 것이 논리적 인 것처럼 보입니다. – iwasrobbed