private AudioNode createAudioNode(String filepath, AudioData.DataType type) {
        boolean stream = (type == AudioData.DataType.Stream);
        boolean streamCache = true;
        AudioKey audioKey = new AudioKey(filepath, stream, streamCache);
        AudioData data = assetManager.loadAsset(audioKey);

        AudioNode audio = new AudioNode();
        audio.setAudioData(data, audioKey);
        return audio;
    }
Creates an {@link AudioNode} for the specified audio file.
This method demonstrates an alternative way to defer the creation
of an AudioNode by explicitly creating and potentially pre-loading
the {@link AudioData} and {@link AudioKey} before instantiating
the AudioNode. This can be useful in scenarios where you want more
control over the asset loading process or when the AudioData and
AudioKey are already available.

@param filepath The path to the audio file.
@param type     The desired {@link AudioData.DataType} for the audio.
@return A new {@code AudioNode} configured with the loaded audio data.
jme3-examples/src/main/java/jme3test/audio/TestWav.java