forked from LeenkxTeam/LNXSDK
39 lines
953 B
Haxe
39 lines
953 B
Haxe
package iron.system;
|
|
|
|
import kha.audio1.AudioChannel;
|
|
|
|
/**
|
|
Audio playback. This class wraps around `kha.audio1.Audio`.
|
|
**/
|
|
class Audio {
|
|
|
|
#if lnx_audio
|
|
|
|
public function new() {}
|
|
|
|
/**
|
|
Plays the given sound.
|
|
|
|
If `stream` is `true` and the sound has compressed data, it is streamed
|
|
from disk instead of being fully loaded into memory. This is useful for
|
|
longer sounds such as background music.
|
|
|
|
This function returns `null` if:
|
|
|
|
- there is no unoccupied audio channel available for playback.
|
|
- the sound has compressed data only but `stream` is `false`. In this
|
|
case, call `kha.Sound.uncompress()` first.
|
|
**/
|
|
public static function play(sound: kha.Sound, loop = false, stream = false): Null<AudioChannel> {
|
|
if (stream && sound.compressedData != null) {
|
|
return kha.audio1.Audio.stream(sound, loop);
|
|
}
|
|
else if (sound.uncompressedData != null) {
|
|
return kha.audio1.Audio.play(sound, loop);
|
|
}
|
|
else return null;
|
|
}
|
|
|
|
#end
|
|
}
|