Ini adalah bug yang sangat sulit untuk direproduksi. Dari laporan kerusakan yang saya terima dari pemain, itu muncul secara acak jika seseorang melakukan jeda(), setPosition(), play() atau membuang() berulang kali. Saya tidak yakin apakah perangkat kerasnya terkait atau karena beberapa masalah waktu. Meskipun saya dapat mereproduksinya secara konsisten dengan kode yang mirip dengan #5316 , saya cukup yakin itu tidak terkait.
Hanya render() dari ApplicationListener kosong:
Music music = null;
<strong i="9">@Override</strong>
public void render() {
int frameNumber = (int)Gdx.graphics.getFrameId();
Gdx.app.log("CRASH", "Frame " + frameNumber);
switch (frameNumber) {
case 0:
// Frame 1
music = Gdx.audio.newMusic(Gdx.files.external("any_audio_file.ogg"));
music.play();
break;
case 1:
// Frame 2
music.setPosition(26.300f); // must be within at least 200ms from the end
break;
case 2:
// Frame 3
music.setPosition(26.300f); // must be within at least 200ms from the end
break;
case 3:
// Frame 4
music.dispose();
break;
case 4:
// Frame 5
music = Gdx.audio.newMusic(Gdx.files.external("any_audio_file.ogg"));
music.play(); // Crashes here
break;
}
}
1.9.9-SNAPSHOT
com.badlogic.gdx.utils.GdxRuntimeException: Unable to allocate audio buffers. AL Error: 40963
at com.badlogic.gdx.backends.lwjgl.audio.OpenALMusic.play(OpenALMusic.java:83)
at game27.DesktopMain$2.render(DesktopMain.java:270)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:225)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)
saya dapat mereproduksi dengan libgdx MusicTest.
Kasus pertama:
Kasus kedua:
Unable to allocate audio buffers. AL Error: 40963
libgdx kode benar unqueue buffer tetapi sesuai OpenAL doc : The unqueue operation will only take place if all n buffers can be removed from the queue.
mungkin OpenAL tidak dapat membatalkan beberapa buffer berjalan yang menyebabkan semacam akumulasi karena alokasi/frekuensi bebas.
Mungkin penggunaan semacam itu ekstrem dan mungkin Suara harus digunakan sebagai gantinya.
Saya memiliki kesalahan yang sama persis di Windows :( - Ada berita tentang ini?
Skenario:
Juga terjadi dengan LWJGL3, belum menemukan solusi sejauh ini.
Komentar yang paling membantu
saya dapat mereproduksi dengan libgdx MusicTest.
Kasus pertama:
Kasus kedua:
Unable to allocate audio buffers. AL Error: 40963
libgdx kode benar unqueue buffer tetapi sesuai OpenAL doc :
The unqueue operation will only take place if all n buffers can be removed from the queue.
mungkin OpenAL tidak dapat membatalkan beberapa buffer berjalan yang menyebabkan semacam akumulasi karena alokasi/frekuensi bebas.Mungkin penggunaan semacam itu ekstrem dan mungkin Suara harus digunakan sebagai gantinya.