forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			38 lines
		
	
	
		
			951 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			951 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha.js; | ||
|  | 
 | ||
|  | import haxe.io.Bytes; | ||
|  | import js.html.XMLHttpRequest; | ||
|  | 
 | ||
|  | class MobileWebAudioSound extends kha.Sound { | ||
|  | 	public var _buffer: Dynamic; | ||
|  | 
 | ||
|  | 	public function new(filename: String, done: kha.Sound->Void, failed: AssetError->Void) { | ||
|  | 		super(); | ||
|  | 		var request = untyped new XMLHttpRequest(); | ||
|  | 		request.open("GET", filename, true); | ||
|  | 		request.responseType = "arraybuffer"; | ||
|  | 
 | ||
|  | 		request.onerror = function() { | ||
|  | 			failed({url: filename}); | ||
|  | 		}; | ||
|  | 
 | ||
|  | 		request.onload = function() { | ||
|  | 			compressedData = Bytes.ofData(request.response); | ||
|  | 			uncompressedData = null; | ||
|  | 			MobileWebAudio._context.decodeAudioData(compressedData.getData(), function(buffer) { | ||
|  | 				length = buffer.duration; | ||
|  | 				channels = buffer.numberOfChannels; | ||
|  | 				_buffer = buffer; | ||
|  | 				done(this); | ||
|  | 			}, function() { | ||
|  | 				failed({url: filename, error: "Audio format not supported"}); | ||
|  | 			}); | ||
|  | 		}; | ||
|  | 		request.send(null); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	override public function uncompress(done: Void->Void): Void { | ||
|  | 		done(); | ||
|  | 	} | ||
|  | } |