33 lines
		
	
	
		
			722 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			722 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha.js; | ||
|  | 
 | ||
|  | import js.Syntax; | ||
|  | import js.html.audio.AudioContext; | ||
|  | 
 | ||
|  | @:keep | ||
|  | class MobileWebAudio { | ||
|  | 	@:noCompletion public static var _context: AudioContext; | ||
|  | 
 | ||
|  | 	@:noCompletion public static function _init(): Void { | ||
|  | 		try { | ||
|  | 			_context = new AudioContext(); | ||
|  | 			return; | ||
|  | 		} | ||
|  | 		catch (e:Dynamic) {} | ||
|  | 		try { | ||
|  | 			Syntax.code("this._context = new webkitAudioContext();"); | ||
|  | 			return; | ||
|  | 		} | ||
|  | 		catch (e:Dynamic) {} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function play(sound: Sound, loop: Bool = false): kha.audio1.AudioChannel { | ||
|  | 		var channel = new MobileWebAudioChannel(cast sound, loop); | ||
|  | 		channel.play(); | ||
|  | 		return channel; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function stream(sound: Sound, loop: Bool = false): kha.audio1.AudioChannel { | ||
|  | 		return play(sound, loop); | ||
|  | 	} | ||
|  | } |