2017-12-26 10 views
2

타이머 응용 프로그램을 만들고 타이머가 끝나면 (초가 0에 도달) 사용자가 장치의 단추를 클릭 할 때까지 시스템 사운드가 계속 재생되도록하려고합니다. .UIAlertController 신속한 시스템 사운드 관리

내 버튼은 화면에 표시되며 집 전화/볼륨/벨소리 버튼 e.t.c와 비슷합니다. 전화를받을 때 휴대 전화 벨소리가 들리면 비슷합니다.

나는 현재이 코드를 위해 설정 한 UIAlertController

let timerFinished = UIAlertController(title: "Timer Up", message: nil, preferredStyle: UIAlertControllerStyle.alert) 

     timerFinished.addAction(UIAlertAction(title: "OK", style: .cancel, handler: { (action: UIAlertAction!) in 



     })) 

     present(timerFinished, animated: true, completion: nil) 
timerFinished.view.superview?.isUserInteractionEnabled = true timerFinished.view.superview?.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.alertClose))) 

본질 그래서
@objc func alertClose(gesture: UITapGestureRecognizer) { 
    self.dismiss(animated: true, completion: nil) 
}. 

, 내 질문은 :

1) 물리적 버튼을 사용하는 것이 가능 시스템 소리를 비활성화하는 동작을 실행 하시겠습니까? - 그렇다면 어떻게?

2) 조치가 실행되면 시스템 사운드를 사용 불가능하게 설정하려면 어떻게해야합니까? - 당신은 무언가 같이 말한다 while 루프를 설정하는 것입니다 :

while playSystemSound == true { 

    AudioServicesPlaySystemSound(SystemSoundID(THIS IS WHERE ID WOULD GO)) 

} 

과의 코드를 실행합니다 (경우 alertClose(), OK 버튼 및 물리적 장치 버튼의 동작에서

playSystemSound = false 

을 가능한).

+0

듣고 싶지는 않지만 다음과 같이 할 수 있다고 생각하지 않습니다. https://stackoverflow.com/questions/7643942/is-it-possible-to-use-iphones-volume-control-buttons -for-some-other-purpose – BHendricks

+1

그래, BHendricks는 그것이 불가능하다는 것을 알고 많은 시간을 절약 할 수 있기 때문에 나를 알려 주셔서 감사합니다. –

답변

0

답변이 없으므로 지금 당장이를 수행 할 수 없습니다. this 질문/대답에서 언급했듯이, 하드웨어 동작을 위해 하드웨어 버튼을 사용하는 것은 Apple의 가이드 라인에 위배됩니다.하지만 카메라 앱 자체는 셔터 용 볼륨 버튼을 사용하기 때문에 아이러니 컬합니다.