2012-04-14 6 views
2

나는 음악 세그먼트 (예곡 부, 반복 된 부분, 끝 부분)와이 부분의 시간 정보 (오프셋, 점수 길이)를 저장하기 위해 "형식"을 만들었습니다. 마치 한 곡의 음악처럼 실시간으로 반복되는 부분을 (선택적으로) 무한 반복합니다. 이 방법으로 세그먼트는 다음 세그먼트가 재생되는 곳에서 감쇠를 저장하고 이전 세그먼트는 끝납니다. (저는 이것을 자바로 만들었고 Clip 클래스를 사용했습니다.)XNA 음악 믹싱 실시간

무한 길이의 음악을 재생하는 동안 한정 길이의 음악 (주크 박스 기능 용)을 제공 할 수 있습니다. -계략.

그러나이 "형식"을 관리하는 XNA에서 코드를 만들고 싶었을 때 "노래"를 동시에/겹쳐서 재생할 분명한 방법이 없다는 것을 알았습니다. 어떻게하면됩니까/XNA 프레임 워크를 떠나지 않고 모범 사례입니까? (무한 재생 목록을 만들고 싶지 않습니다.)

답변

2

아마도 XACT을 조사하고 싶을 것입니다. XNA 사본과 함께 설치되어 있어야합니다. XACT는 게임의 오디오 로직을 설정할 수있는 소프트웨어를 오디션합니다. 기본적으로 XNA와 완벽하게 통합됩니다. XACT의 몇 가지 고급 기능을 살펴보면 필요한 작업을 수행 할 수 있습니다. 매우 강력하지만 학습 곡선이 있습니다.

XACT 외부에서는 훨씬 더 어려워 질 것입니다. 나는 바닐라 C#/XNA 코드로 그것을 할 어떤 방법을 생각할 수 없다. XACT는이 단점을 보완하도록 설계되었으므로 사용해야합니다.

XACT의 미래는 죽었거나 죽어 가고있는 것 같습니다 (앞으로 지원되지 않을 수도 있음). 적어도 DirectX 버전은 있습니다. 하지만 내가 말했듯이, 이러한 수준의 제어로 XNA에서 오디오를 관리하는 방법과 비교할 수있는 방법이 실제로 존재하지 않기 때문에, 그들은 생각을 완전히 포기할 것이라고 생각하지 않습니다.

+0

C++로 프로젝트를 이식 할 계획 이었기 때문에 슬프다. 그래서 가능한 한 다른 버전의 리소스를 만들려고했다. 그러나 실제로 죽어가는 것이라면, 미래의 XNA에서 고급 로직을 추가 할 계획이라는 것을 의미합니다. 그러면 XACT를 살펴볼 것입니다. 감사! –

+0

반드시 그렇지는 않습니다. XACT를 그대로두고 단순히 업데이트하지는 않지만 XNA에 고급 오디오를 추가하지 마십시오. 어쨌든 지금은 꽤 유능합니다. C++로 이식 할 때 DirectX로 작업하려면 vanilla DirectX의 XACT 버전을 살펴보아야합니다. XNA XACT와 DirectX XACT 사이에는 이식성이 있으므로 오디오 통합을 이동하는 것이 그리 어려운 일은 아닐 수도 있습니다. –

+0

저는 크로스 플랫폼 괴물입니다. DirectX를 사용할 수없는 시스템에 이식하고 싶습니다. 그래서 나를위한 옵션은 아니지만 다시 한 번 감사드립니다. :) –