module audio
import java
-import java_io
+import java::io
import assets_and_resources
import app
# AudioManager of the application, used to manage the audio mode
extern class NativeAudioManager in "Java" `{ android.media.AudioManager `}
super JavaObject
- redef type SELF: NativeAudioManager
fun mode: Int in "Java" `{ return recv.getMode(); `}
fun mode=(i: Int) in "Java" `{ recv.setMode((int)i); `}
# This is a low-level class, use `MediaPlater` instead
extern class NativeMediaPlayer in "Java" `{ android.media.MediaPlayer `}
super JavaObject
- redef type SELF: NativeMediaPlayer
new in "Java" `{ return new MediaPlayer(); `}
fun start in "Java" `{ recv.start(); `}
# This is a low-level class, use `SoundPool`instead
extern class NativeSoundPool in "Java" `{ android.media.SoundPool `}
super JavaObject
- redef type SELF: NativeSoundPool
new(max_streams, stream_type, src_quality: Int) in "Java" `{
return new SoundPool((int)max_streams, (int)stream_type, (int)src_quality);
# Used to play sound, best suited for sounds effects in apps or games
class SoundPool
- private var nsoundpool: NativeSoundPool
+ private var nsoundpool: NativeSoundPool is noinit
# The maximum number of simultaneous streams for this SoundPool
- var max_streams writable = 10
+ var max_streams = 10 is writable
# The audio stream type, 3 is STREAM_MUSIC, default for game application
- var stream_type writable = 3
+ var stream_type = 3 is writable
# The sample-rate converter quality, currently has no effect
- var src_quality writable = 0
+ var src_quality = 0 is writable
# Left volume value, range 0.0 to 1.0
- var left_volume writable = 1.0
+ var left_volume = 1.0 is writable
# Right volume value, range 0.0 to 1.0
- var right_volume writable = 1.0
+ var right_volume = 1.0 is writable
# Playback rate, 1.0 = normal playback, range 0.5 to 2.0
- var rate writable = 1.0
+ var rate = 1.0 is writable
# Loop mode, 0 = no loop, -1 = loop forever
- var looping writable = 0
+ var looping = 0 is writable
# Stream priority
private var priority = 1
# The Android MediaPlayer has a complex state diagram that you'll need to
# respect if you want your MediaPlayer to work fine, see the android doc
class MediaPlayer
- private var nmedia_player: NativeMediaPlayer
+ private var nmedia_player: NativeMediaPlayer is noinit
# The sound associated with this mediaplayer
- var sound: nullable Sound
+ var sound: nullable Sound = null
# Create a new MediaPlayer, but no sound is attached, you'll need
# to use `load_sound` before using it