2015-01-15 1 views
0

Objective-C를 처음 접했고 기본 오디오를 처리하는 올바른 방법에 대해 혼란스러워합니다. 나는 간단한 게임을 마쳤지 만 며칠 동안 소리 문제로 싸우고있다.간단한 iOS 게임에서 오디오를위한 최선의 방법은 무엇입니까?

여기 내 이해입니다 :

AVAudioPlayer : 게임을 오버레이 예를 테마 음악, 더 긴 사운드 재생을위한 이상적인 것 같다.

AudioServicesPlaySystemSound : 30 초 미만의 빠른 사운드 효과에 이상적입니다.

자연스럽게 나는 테마 음악에는 AVAudioPlayer를, 사운드 효과에는 SystemSound를 사용할 것입니다. 불행히도, 나는 즉시 매우 성가신 문제를 발견했습니다. 두 볼륨 볼륨이 서로 다른 볼륨 소스 (SystemSoundServices는 벨소리 볼륨을 사용합니까 ??)과 일반적으로 잘 어울리지 않습니다. 대부분의 앱에서 사용하는 설정이 아닙니다.

그런 다음 AudioServicesPlaySystemSound 접근법을 폐기하고 AVAudioPlayer의 모든 것을 다시 프로그래밍했습니다. 이것은 볼륨에 대해서는 문제가 없었지만 끔찍한 지연을 가져 왔으며 빠른 사운드 시퀀스를 처리 할 수 ​​없었습니다. 이것은 음향 효과에 유용하지 않은 것으로 보입니다.

저는 이제 OpenAL을 살펴 보았습니다. OpenAL은 내 단순한 게임에 대한 과격한 행동입니다. 그래서 누군가 제게 깨달을 수 있겠습니까? 제가 누락 된 것이 있습니까? 아니면 OpenAL이 일반적인 음악/sfx 게임 형식에 접근하는 가장 좋은 방법입니까?

+0

"AVAudioPlayer의 모든 프로그램을 다시 프로그램했는데 볼륨이 좋았지 만 끔찍한 지연이 발생하여 빠른 사운드 시퀀스를 처리 할 수 ​​없었습니다."그런 다음 잘못하고 있습니다. 어떻게하는지 보여주세요. – matt

+0

그건 그렇고, 새로운 AVAudioEngine은 어떻습니까 ??? WWDC 2014 비디오의 토론에서 볼 수 있듯이 게임에 딱 맞습니다. – matt

답변

1

AVAudioPlayer를 사용할 때 "지연이 있습니다"라는 메시지가 표시되면 잘못했을 수 있습니다.

그러나 어쨌든 AVAudioEngine을 고려해 보시기 바랍니다. 이 프로그램의 목적은 정확히 OpenAL이하는 일을 프로그래밍 인터페이스로 훨씬 쉽게 할 수있게하는 것입니다. 간단한 게임과 사운드 효과에 이상적입니다. AVAudioEngine에 대한 WWDC 2014 비디오는 정확히 그 용도로 사용되고 있음을 보여줍니다.

+0

감사합니다. 아마 AVAudioPlayer를 구현하는 데 시간이 걸렸을 것입니다. 제가 사운드 효과의 빠른 시퀀스를 위해 원활하게 작동 할 수 있다는 것을 알고있는 한, 다시 돌아가서 시도해 보겠습니다. 그렇지 않으면 AVAudioEngine을 체크 아웃 할 것입니다. – stobin

+0

이것에 후속해서, 나는 급속한 접촉을위한 눈에 띄는 지연을 아직도 얻고있다 그리고 나는 그것이 나만이지 않는다는 것을 생각하는 것을 시작하고있다. [이 링크] (http://gregheo.com/blog/simple-audio/)를 참조하십시오. ''AVAudioPlayer를 사용할 때 여전히 눈에 띄는 대기 시간이 있지만, 간단한 사운드 효과는 괜찮을 지 모르지만보다 정확하고시기 적절한 재생을 위해 항상 OpenAL이 있습니다. " – stobin

+0

내 대답에는"아마도 "를 넣을 것입니다. 그런 담요 성명서는 아닙니다! – matt

관련 문제