2016-08-30 3 views
0

libgdx에서 음악 루핑에 문제가 있습니다. 나는 simmilair 화제가 전에 여기에 있었다라는 것을 알고있다. 그러나 그것은 나를 전혀 도와주지 않았다. 것은 당신이 나의 게임 (link)에있는 주 메뉴에 갈 때 비의 소리는 반복된다이다. 불행하게도, 각 연극 사이에는 잠깐 침묵의 순간이 있습니다. 왜 그런지 모르겠다. 게임을 다운로드하고 내가 의미하는 바를 볼 수있다. 이미 .ogg 형식을 사용하고 있으므로 여기에서 찾은 다른 주제의 솔루션은 실제로 도움이되지 않았습니다.Libgdx : 사운드 트랙 루프시 지연

이 사운드를 Audacity의 루프에서 재생하면 완벽하게 작동합니다.

가 여기 내 코드입니다 (비록 그것이 도움이됩니다 생각하지 않는다) :

rainSoundtrack = Gdx.audio.newMusic(Gdx.files.internal("soundtrack.ogg")); 
rainSoundtrack.setLooping(true); 

답변

1

문제는 libGDX 음악을 처리하는 방법입니다. 나는 badlogic 게시물을 GitHub issue 1654에 인용 할 것입니다.

Android 상황은 조금 더 복잡하고 슬픈 상태입니다. Android에서는 시스템 기능을 사용하여 오디오 즉 MediaPlayer를 재생합니다. 이 안드로이드 소프트웨어는 장치 종속 장치 드라이버 (오디오 드라이버, 사용자 지정 코덱 구현 등)를 사용합니다. 이것은 우리가 삼성과 같은 하드웨어 벤더와 드라이버 구현의 자비에 있다는 것을 의미합니다.

문제는 libGDX에만 국한되지 않고 Android issue 18756입니다.

솔루션 귀하의 사운드 트랙은 메모리 크기의 기간에 짧고 작은

그래서 libGDX 사운드를 사용하는 것은이 경우 실제로 더 나은이며,이 갭 버그 무료입니다.

음악 -> 메모리에로드하지 길고 큰 파일,

사운드 -> 메모리

사용 Sound 클래스 및 루프 그것으로로드 짧고 작은 파일. 예 :

long id; 
... 
public void create() { 
    music = Gdx.audio.newSound(Gdx.files.internal("soundtrack.ogg")); 
    id = music.loop(); //Sound may not be ready here! 
} 

public void render() { 
    if(id == -1) 
     id = music.loop(); 
} 
관련 문제