2011-02-25 4 views
2

타이머에 작동하는 알람 시계 앱이 있습니다. 알람이 꺼지고 화면이 꺼지면 AVAudioPlayer에서 오디오가 재생되기 시작해야하지만 그렇지 않습니다. 그런 다음 화면을 다시 켜면 나머지 코드가 예상대로 실행되었음을 알 수 있습니다 (중지 버튼이 화면에 표시됨). 화면이 꺼져있을 때 AVAudioPlayer를 재생하려면 어떻게해야합니까?화면을 끈 상태에서 앱 소리가 나지 않지만 그 밖의 모든 작업을 수행해야합니까?

화면이 꺼져 있는지 감지 할 수있는 방법이 있습니까?

+0

xcode 관련 없음. 태그 [xcode]의 사용을 확인하십시오 : stackoverflow.com/tags/xcode/info – vikingosegundo

답변

3

@zoul은 기본 오디오 세션 범주를 사용하여 사용자가 화면을 고정 할 때 사용할 수 없게 앱에 형성 사운드가 발생할 것 맞습니다. 선택할 오디오 세션 카테고리의 방향은 Audio Session Programming Guide을 참조하십시오.

그러나, 오디오 세션 범주가 올바르게 설정되어 있더라도 일단, 당신은 해결하기 위해 또 다른 문제가 있습니다. 화면이 꺼지면 Apple 설명서에 따라 응용 프로그램이 일시 중지됩니다 (Executing Code in the Background). 즉, 사용자가 휴대 전화 나 스위치를 다른 앱에 잠그면 사용자가 앱을 다시 활성화 할 때까지 앱의 실행이 중지되고 고정 (작업 일시 중지) 상태로 유지됩니다. 이 시점에서 앱은 아무 일도 일어나지 않은 것처럼 실행을 재개합니다. 그래서 화면을 잠금 해제 할 때 앱이 계속 작동하는 것처럼 보입니다.

알람 동작을 위해, 당신은 아마 로컬 통지의 배달을 예약 할 수 있습니다. 지역 알림은 사용자가 요청할 때 시스템이 사용자에게 알림을 제공하고 사용자가 앱을 활성화 할 수 있도록합니다. 이를 수행하는 방법에 대한 자세한 내용은 Scheduling the Delivery of Local Notifications을 참조하십시오.

0

아마도 오디오 카테고리가 잘못되었을 수 있습니다. AVAudioSession에 대한 설명서, 특히 오디오 범주 설정을 참조하십시오.

관련 문제