2017-01-24 3 views
1

따라서 AlwaysAuthorization을 요청한 CoreLocation 때문에 내 앱이 백그라운드에서 실행되고 있습니다. 이렇게하면 앱이 일시 중지 상태가되지 않습니다. 백그라운드 상태로 유지되며 위치 이벤트를 수신합니다. 일부 위치 이벤트가 끝나면 AVAudioSession을 활성화하고 소리를 재생하고 싶습니다. 지금 전경에서 다른 앱을 사용하고 있고이 앱이 오디오 트랙을 재생하고있을 때 (이 배경 앱에서 세션을 제대로 활성화하는 방법) 유튜브 앱에서 일부 동영상을보고 있는데 내 배경 앱이 지금 오디오를 재생해야한다고 가정합니다. 이 경우 오디오 세션을 활성화하는 데 문제가 있습니다.MixWithOthers없이 백그라운드 상태에서 AVAudioSession을 활성화 할 수 있습니까?

Ring/Silent 스위치가 켜져 있어도이 소리가 재생되어야하므로이 경우 재생 엔진 AudioToolbox을 사용할 수 없습니다.

나는 AVAudioSessionCategoryPlayback 카테고리를 사용해야 함을 알고 있습니다. 또한 다른 앱이 동시에 재생되기를 원하지 않으므로 MixWithOthers 또는 DuckOthers 카테고리 옵션을 사용하지 않습니다.

백그라운드에서 오디오 재생을 위해 UIBackgroundModes을 사용하도록 설정했습니다.

응용 프로그램이 백그라운드 상태이고 다른 앱이 현재 믹싱 옵션없이 오디오를 재생할 때 이러한 세션을 활성화하는 방법. 현재 foreground 앱에서 오디오 세션을 중단하여 백그라운드 앱이 재생 시간 동안 활성화 할 수있게하는 방법. 재생이 끝나면 백그라운드에서 오디오 세션을 비활성화하고 다른 앱에 재생을 다시 시작할 수 있음을 알립니다.

답변

0

AppDelegate.m 클래스의 didFinishLaunchingWithOptions 메서드에서 다음 세 줄을 추가하고 응용 프로그램을 다시 테스트하십시오. 같은 문제가 있으면 알려주세요.

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 
[UIApplication sharedApplication].idleTimerDisabled = YES; 
+0

앱이 시작된 직후에 세션을 활성화하는 것은 권장 사항이 아닙니다. 또한 작동하지 않습니다. 나는 노력했다. 이 방법으로 앱을 실행하고 뮤직 앱으로 전환하면 음악을 재생할 수 있습니다. 내 앱이 오디오 세션을 중단합니다 (예 : 앱에서 중단이 올바르게 처리됨).이 상태 (백그라운드에서 전경 및 앱 내 음악 앱 사용)에서 앱이 위치 트리거를 얻고 시작하기를 기다리고 있습니다. 일부 오디오 재생. 백그라운드의 앱은 믹싱 할 수없는 카테고리가 아닌 오디오 세션을 시작할 수 없습니다. –