From: Alexis Laferrière Date: Wed, 18 Oct 2017 15:04:56 +0000 (-0400) Subject: android: refactor music/sounds and fix trying to use invalid music resource X-Git-Url: http://nitlanguage.org android: refactor music/sounds and fix trying to use invalid music resource Signed-off-by: Alexis Laferrière --- diff --git a/lib/android/audio.nit b/lib/android/audio.nit index 19fac5a..3b13050 100644 --- a/lib/android/audio.nit +++ b/lib/android/audio.nit @@ -542,9 +542,16 @@ redef class Sound redef fun load do if is_loaded then return - var retval_resources = app.default_soundpool.load_name_rid(app.resource_manager, app.native_activity, path.strip_extension) - if retval_resources == -1 then - self.error = new Error("Failed to load " + path) + + # Try resources (res) + var rid = app.default_soundpool.load_name_rid(app.resource_manager, app.native_activity, path.strip_extension) + if rid > 0 then + self.soundpool_id = rid + self.soundpool = app.default_soundpool + self.error = null + self.soundpool.error = null + else + # Try assets var nam = app.asset_manager.open_fd(path) if nam.is_java_null then self.error = new Error("Failed to get file descriptor for " + path) @@ -559,11 +566,6 @@ redef class Sound self.soundpool.error = null end end - else - self.soundpool_id = retval_resources - self.soundpool = app.default_soundpool - self.error = null - self.soundpool.error = null end is_loaded = true @@ -611,9 +613,19 @@ redef class Music redef fun load do if is_loaded then return - var mp_sound_resources = app.default_mediaplayer.load_sound(app.resource_manager.raw_id(path.strip_extension), app.native_activity) - if mp_sound_resources.error != null then + + # Try resources (res) + var rid = app.resource_manager.raw_id(path.strip_extension) + if rid > 0 then + var mp_sound_resources = app.default_mediaplayer.load_sound(rid, app.native_activity) + if mp_sound_resources.error != null then + self.media_player = app.default_mediaplayer + self.error = null + self.media_player.error = null + end self.error = mp_sound_resources.error + else + # Try assets var nam = app.asset_manager.open_fd(path) if nam.is_java_null then self.error = new Error("Failed to get file descriptor for " + path) @@ -627,10 +639,6 @@ redef class Music self.media_player.error = null end end - else - self.media_player = app.default_mediaplayer - self.error = null - self.media_player.error = null end is_loaded = true