Upload
ivan-dragogear
View
378
Download
0
Embed Size (px)
Citation preview
Bucles de sonido en android con pygame.
Por José Iván González Torres
http://ingenieria-dragogear.blogspot.mx/
Las versiones de PGS4A
Las versiones de PGS4A
Las versiones:
pgs4a-0.9.4
pgs4a-0.9.5
pgs4a-0.9.6
No tienen un método practico para crear Bucles de sonido, aunque el mixer de PGS4A si es ideal para reproducir efectos de sonidos que solo se escuchan un vez o después de que se cumple una condición.
PyJnius en PGS4A-0.9.6
PyJnius nos permite utilizar algunas clases de java dentro de python.
En este caso para reproducir bucles de sonido utilizaremos “android.media.MediaPlayer”.
Fuente: http://pyjnius.readthedocs.org
● from jnius import autoclass● from time import sleep●
● # get the MediaPlayer java class● MediaPlayer = autoclass('android.media.MediaPlayer')●
● # create our player● mPlayer = MediaPlayer()● mPlayer.setDataSource('/sdcard/testrecorder.3gp')● mPlayer.prepare()●
● # play● print 'duration:', mPlayer.getDuration()● mPlayer.start()● print 'current position:', mPlayer.getCurrentPosition()● sleep(5)●
● # then after the play:● mPlayer.release()●
Fuente: http://pyjnius.readthedocs.org/en/latest/android.html#playing-an-audio-file
android.media.MediaPlayer
MediaPlayer puede preparar de dos formas los sonidos a reproducir:
MediaPlayer().prepare(): Detiene la aplicación mientras prepara el audio para reproducirlo.
MediaPlayer().prepareAsync():Permite que la aplicación corra en paralelo con la preparación del audio a reproducir pero, si alguna condición intenta comenzar la reproducción del audio no se reproducirá hasta que el audio este completamente cargado. Nota: Durante el uso de la aplicación solo se podrán usar todos aquellos audios que se hayan reproducido antes del utilizar el método “.stop()”.
Ejemplo:
from jnius import autoclass●
● class AudioBucle():– def __init__(self, Archivo, Bucle = True):
– self.Archivo = Archivo
– self.Bucle = Bucle– MediaPlayer = autoclass('android.media.MediaPlayer')
– self.mPlayer = MediaPlayer()– try:
● self.mPlayer.setDataSource(self.Archivo)● except Exception, e:● print "ERROR EN CARGA DE SONIDO:",str(e)
– #self.mPlayer.prepareAsync()
– self.mPlayer.prepare()– self.mPlayer.setLooping(self.Bucle)
– self.V_Play = False
def play(self, Bucle = 0):– self.V_Play = True
– self.mPlayer.start()
●
● def stop(self):– self.V_Play = False
– self.mPlayer.pause()
– self.mPlayer.seekTo(0)
●
● def set_volume(self,Volumen):– try:
● self.mPlayer.setVolume(Volumen,Volumen)● except Exception, e:● print "Volumen no se puede modificar"● print "ERROR:", srt(e)
Fuentes:
http://pygame.renpy.org/
http://developer.android.com/reference/android/media/MediaPlayer.html
http://pyjnius.readthedocs.org
Redes sociales:
http://ingenieria-dragogear.blogspot.mx/
https://es-es.facebook.com/PythonDragogear
http://ivandragogear.deviantart.com/
https://twitter.com/IvanDragogear