문제

내가 만드는 컴퓨터 게임에서는 분명히 소리를 내고 싶다. 지금까지 저는 AudioClip을 사용하여 WAV 파일을 재생했습니다. 이 접근법은 잘 작동하지만 WAV 파일은 거대하는 경향이 있습니다. 몇 초의 소리는 수백 KB입니다. 나는 95% 오디오 인 게임 다운로드에 직면하고 있습니다!

여기서 명백한 옵션은 MP3 또는 Ogg Vorbis를 사용하는 것입니다. 그러나 나는 이것으로 성공을 거두었습니다 - Jlayer를 사용하여 MP3를 재생할 수 있습니다 (그러나 같은 스레드에서 재생됩니다). Ogg는 운이 전혀 없었습니다. 더 나쁜 것은, Jlayer의 법적 지위는 모호한 편입니다.

그래서 제 질문은 Java 개발자와 일반적으로 소리에 대해 실제로 알고있는 사람들에게입니다. 어떻게해야합니까? 어떻게 든 내 wavs에서 "지방을 다듬을 수 있습니까? Java에서 Ogg를 플레이하는 방법이 있습니까? 대신 사용해야 할 다른 사운드 형식이 있습니까?

도움이 되었습니까?

해결책

당신은 사용할 수 있습니다 Jorbis OGG 음악을 재생하는 도서관. 작업 샘플 사용을 위해이 파일을 볼 수 있습니다. 여기.

또한 무한 오디오 압축을 실험했습니다. 예를 들어 16 비트 모노 사운드가있었습니다. 각 샘플의 상단 및 하단 바이트를 분리하여 서로 배치했습니다. 그런 다음 각 바이트가 마지막 바이트와의 차이로 대체되는 차등 교체를 적용했습니다. 그리고 마지막으로 GZIP를 사용하여 데이터를 압축했습니다. 데이터 크기를 원래 크기의 50-60%로 줄일 수있었습니다. 불행히도 이것은 충분하지 않아서 OGG 형식으로 향했습니다.

8 비트 음악으로 알아 차린 한 가지는 오디오 볼륨을 변경하면 재생이 매우 시끄럽게된다는 것입니다. Ordio Data를 16 비트로 Upsamplplplplplpling worcencedataline.write () 직전에 해결 하여이 문제를 해결했습니다.

다른 팁

이것들은 구식 일 수 있지만 xiph.org 팀 (OGG 및 Vorbis를 유지하는 사람)에 의해 공식적으로 인정됩니다.http://www.vorbis.com/software/#java

당신이 설명하는 문제는 Java의 Sound에 대한 SPI (Service Provider Interface)에서 다루어집니다. 결과적으로 ClassPath에 JAR 파일을 추가하면 기본 Java Sound API에 기능이 추가됩니다. 따라서 코드를 변경하지 않고 더 많은 사운드 형식의 처리를 가능하게합니다.

지난번에 나는 이것을 시도했다 Javazoom 사람들은 작동하는 MP3 SPI 항아리를 제공했습니다. 당신이 언급 한 JLayer를 기반으로했습니다.

Vorbis Ogg에게는 이제 SPI 라이브러리가있는 것 같습니다. 문서를 확인하십시오 Vorbis Spi Javazoom에서.

WAV 형식으로 머물기로 결정했다면 ...

고품질 사운드 파일을 갖는 것은 그리 중요하지 않을 것입니다. 좋아하는 WAV 편집기를 사용하여 비트 속도를 낮추거나 모노로 전환하거나 둘 다를 줄 수 있습니다. 그것은 수많은 공간을 절약 할 것이며 게임을하는 동안 품질의 차이를 알지 못할 것입니다.

도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top