2011-02-25 7 views
0

을 개방하지 * awakeFromNib 메소드 엔진은 다음과 같이핀치 오디오 엔진 I 글로벌 변수 핀치 핀치 초기화 추상 클래스가 디폴트를 OpenAL 장치

엔진 = [핀치 ALLOC] INIT];

추상 클래스의 서브 클래스가 메소드를 대체하지 않습니다. 그러나 내 프로그램을 시도 할 때마다 Finch는 "Finch : 기본 OpenAL 장치를 열 수 없습니다."라는 내용을 인쇄합니다. 디버거에서. Finch에서 기본 OpenAL 장치를 얻을 수없는 이유는 무엇입니까? 내가 할 수있는 한, 나는 코드 예제에서 보듯이 모든 것을하고있다.

답변

1

방금 ​​같은 문제가 발생했습니다. 필자는 하나 이상의 뷰 컨트롤러에서 Finch 객체를 인스턴스화하여 발생했습니다. 어떤 이유로 두 번째 것은 첫 번째 것을 취소 한 것처럼 보였고 사운드를 재생하려고 시도 할 때마다 오류 메시지가 나타났습니다.

해결하기 위해 App Delegate에서 하나의 Finch 객체를 만들었으므로 이제는 전체 응용 프로그램에서 완벽하게 작동합니다.

희망이 도움이 :)

+0

더 많은 기능을 갖기 위해 ObjectAL로 옮겨 갔다는 점을 제외하고는이 도구를 사용해 보았을 때 도움이되었습니다. 불행히도 새로운 문제가 있습니다. 즉, 오디오가 재생되지 않습니다. 나는 현재 새로운 질문을 게시할지 여부를 결정하기 위해 그들의 문서를보고 있습니다. – MachCUBED

0

경고, 여러 핀치 클래스를 할당하는 경우 : FISoundEngine에서

을의 할당 해제의 방법은 closeAudioDevice 호출합니다. 그러면 OpenAL 오디오 장치가 닫힙니다. 아마 알다시피, 하나의 OpenAL 장치가 전체 앱에 존재합니다!

따라서 전체 앱에 대해 하나의 엔진 (하나의 팩토리) 만 가질 수 있음을 의미합니다 ( ). 열려 있어야하는 장소에서 기기를 닫을 것입니다.

이것이 디자인상의 결함인지 여부는 확실하지 않습니다. Finch가 싱글 톤 클래스로 바뀌 었음을 제안했지만, 제 아이디어는 저자가 거부했습니다.