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 | ||
|  | } |