No se pueden cargar archivos de sonido LibGdx

Me gustaría cargar archivos directamente desde el archivo OBB de expansión utilizando AssetManager. Implementé el míoFileHandleResolver

public class CustomFileHandleResolver implements FileHandleResolver
{
    @Override
    public FileHandle resolve(String fileName) {
        return new CustomFileHandle(fileName);
    }
}

Lo configuré en mi AssetManager. Creé mi propio FileHandle y anulo la función read ()

@Override
public InputStream read()
{
    InputStream input = null;

    try {           
        input = GameInfo.expansionFile.getInputStream(file.getPath().replace('\\', '/'));
    } catch (IOException e) {
        e.printStackTrace();
    }   

    return input;
}

Carga todos los archivos como .PNG, .PACK, .FNT, excepto los archivos .OGG, por lo que supongo que no se cargarán todos los archivos de sonido. Recibo este error:

com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load dependencies of asset: SFx/button_click.ogg

Y este error:

com.badlogic.gdx.utils.GdxRuntimeException: java.lang.ClassCastException: com.solidgamesstudio.threedefendersn.framework.CustomFileHandle cannot be cast to com.badlogic.gdx.backends.android.AndroidFileHandle

Leí que zip no se puede comprimir. En 7zip, seleccioné la compresión para "Almacenar" para que no se comprima en absoluto, pero aún así ocurre este problema.

Recorrí lo que sucede cuando se cargan los archivos y descubrí que AssetManager llama a miCustomFileHandleResolver que creaCustomFileHandle. Para cada archivo que no es .OGG, llamaInputStream read(). En esta función, carga el archivo desde el zip y está bien. Pero como dije cuando se trata de cargar .OGG, no llama a esta función. Por lo tanto, ni siquiera está tratando de obtener el archivo del zip. La pregunta es por qué el archivo .OGG no llamaInputStream read() enCustomFileHandle()?

ACTUALIZAR

Recorrí más y descubrí que no llamaráInputStream read() porque no puede crear un sonido de FileHandle de alguna manera. Pista de esto es

CustomFileHandle cannot be cast to AndroidFileHandle

Mientras que para crear un sonido necesita pasar fileHandle.

public Sound newSound (FileHandle fileHandle);

Esto se llama desdeSoundLoader

@Override
public void loadAsync (AssetManager manager, String fileName, FileHandle file, SoundParameter parameter) {
    sound = Gdx.audio.newSound(file);
}

Y ese soundLoader usa mi CustomFileHandleResolver. No sé si los sonidos se manejan de manera diferente a otros tipos de archivos. Pero por defecto, AssetManager usa

public class InternalFileHandleResolver implements FileHandleResolver {
    @Override
    public FileHandle resolve (String fileName) {
        return Gdx.files.internal(fileName);
    }
}

No puedo entrarGdx.files.internal para ver si hay algún manejo especial para los sonidos.

ACTUALIZAR

Un análisis más detallado me da una pista de que el problema principal es el mencionado anteriormente.

CustomFileHandle cannot be cast to AndroidFileHandle

No sé por qué está enviando mi FileHandle a AndroidFileHandle al cargar el archivo OGG. Si carga bien otro tipo de archivos, eso probablemente significa que no hace casting para ellos. Eso significa que OGG es especial y necesita fundición. ¿Alguna pista?

Respuestas a la pregunta(3)

Su respuesta a la pregunta