2009-03-11 3 views
3

다른 것들 중에서도 슬라이드 쇼를 특징으로하는이 이벤트 사진 응용 프로그램을 작성했습니다. Java로 작성된 응용 프로그램은 다중 플랫폼입니다. 그러나 Mac OS X에서는 Quartz Composer의 그래픽 기능을 활용하기 위해 Java 창에 QC 구성 요소를 포함시킵니다. 이 구성 요소는 Xcode와 함께 제공되는 샘플을 기반으로합니다.Java와 Quartz Composer의 인터페이스

사용자는 .qtz 파일과 Java 응용 프로그램이 QC 프로그램에 전달할 수있는 매개 변수를 설명하는 XML 파일로 구성된 슬라이드 쇼의 "스킨"을 선택할 수 있습니다. 매개 변수는 UDP 패킷으로 전달됩니다.

이 방법의 문제점은 QC 프로젝트에 많은 추악한 자바 스크립트 코드가 필요하며이 프로젝트를 빌드하는 디자이너는 프로그래머가 아니기 때문입니다.

이상 적으로 매개 변수를 QC 프로젝트의 게시 된 입력에 바인딩하고 싶습니다. 이미 이런 종류의 작업을 해본 적이 있습니까? 아니면 Java와 QC의 인터페이스에 관한 정보를 알려줄 수 있습니까? 미리 감사드립니다.

답변

2

Objective-C 기반의 Mac OS API에는 원하는 것을하기위한 바인딩이 있지만, Java에서 이들을 액세스하는 방법을 모르겠습니다.

그러나 Quartz Composer는 UDP 또는 TCP 연결을 통해 명명 된 매개 변수 (Float, ints 및 Strings)를 보낼 수있는 OpenSoundControl을 지원합니다. 그런 다음 디자이너는 Quartz Composer의 비주얼 편집기를 사용하여 필요한 패치 매개 변수에 이러한 명명 된 입력을 연결할 수 있어야합니다.

+0

응용 프로그램은 이미 UDP 패킷으로 매개 변수를 전송하지만 더 간단한 해결책이 필요했습니다. –

-1

나는이 작업을 직접 해보지 않았지만 JNI를 사용하여 Java 응용 프로그램의 게시 된 포트에 대한 objective-c 인터페이스에 액세스 할 수 있다고 가정합니다.

+0

이것은 확실히 가능합니다 http://developer.apple.com/library/mac/#technotes/tn2147/_index.html "JNI는 Java와 C 기반 코드 간의 통신을위한 저급 메커니즘입니다. 이 기술의 가장 보편적 인 사용은 크로스 플랫폼 Java 기능 또는 API와 쉽게 일치하지 않는 시스템 기능에 액세스하는 것입니다 .Mac OS X의 경우 이는 Mac OS X 주소록의 데이터에 액세스하거나 ** ** (Quartz Composer 컴포지션 표시). " – ekj