Genera un objeto Channel
(canal de audio) para controlar
la reproducción de audio.
pygame.mixer.Channel(id): return Channel
Retorna un objeto Channel
para uno de los canales actuales. El
argumento id
debe ser un valor entre 0 y el valor que devuelve
pygame.mixer.get_num_channels()
.
El objeto Channel
se puede usar para obtener un control preciso
sobre la reproducción de sonidos. Un canal solo puede reproducir un
objeto Sound
a la vez. Como pygame por defecto maneja por su
cuenta estos objetos, utilizarlos es completamente opcional.
Reproduce un sonido en un canal específico.
Channel.play(Sound, loops=0, maxtime=0, fade_ms=0): return None
Comenzará a reproducir un sonido en un canal específico. Se interrumpirá cualquier sonido que esté sonando en este canal.
El argumento loops
tiene el mismo significado que en Sound.play()
: es
el número de veces que se repetirá el sonido luego de sonar la primera
vez. Si vale 3, entonces el sonido se reproducirá 4 veces (la primera y
luego 3 veces mas). Si loops
vale -1, entonces el sonido se repetirá
indefinidamente.
Como en Sound.play()
, el argumento maxtime
se puede usar
para detener la reproducción de sonido luego de un tiempo determinado
(indicado en milisegundos).
Al igual que Sound.play()
, el argumento fade_ms
se puede
usar para alterar progresivamente el volumen de un sonido.
Detiene la reproducción de sonido en el canal de audio.
Channel.stop(): return None
Detiene la reproducción de sonido en el canal. Luego de interrumpir la reproducción el canal quedará disponible para que nuevos sonidos puedan sonar en él.
Detiene temporalmente la reproducción de un canal.
Channel.pause(): return None
Detiene de forma temporal la reproducción de sonido en un canal. Este
sonido se puede reanudar nuevamente mediante la función Channel.unpause()
.
Reanuda la reproducción en un canal.
Channel.unpause(): return None
Continúa la reproducción en un canal que está en pausa.
Detiene la reproducción luego de reducir el volumen.
Channel.fadeout(time): return None
Detiene la reproducción de un canal luego de reducir progresivamente el
volumen de un sonido en el tiempo indicado por el argumento time
(en milisegundos).
Define el volumen de un canal de reproducción.
Channel.set_volume(value): return None Channel.set_volume(left, right): return None
Define el volumen, o latencia, de un sonido. El nivel de volumen
se reinicia cuando un canal comienza a reproducir nuevamente. Esta
función solo afecta al sonido actual. El argument value
debe
ser un número entre 0.0 y 1.0
Si se pasa un solo argumento, este se interpretará como el volumen
de ambos parlantes. Si se pasan dos argumento y el módulo mixer
usa el modo estéreo, entonces el primer argumento será el volumen
del parlante izquierdo y el segundo argumento será el
volumen del parlante derecho. (Si el segundo argumento es None, entonces
el primer argumento se interpretará como el volumen de ambos
parlantes.)
Si el canal está reproduciendo un sonido en donde se ha llamado
a la función set_volume()
, se tendrán en cuenta las dos
llamadas. Por ejemplo:
sound = pygame.mixer.Sound("s.wav") channel = s.play() # El sonido suena al máximo de volúmen. sound.set_volume(0.9) # Ahora al 90% de si volumen. sound.set_volume(0.6) # Ahora al 60% (el anterior valor de descarta). channel.set_volume(0.5) # Ahora al 30% (porque 0.6 * 0.5 = 0.3).
Obtiene el volumen del canal de reproducción.
Channel.get_volume(): return value
Retorna el volumen del canal para el sonido que es está reproduciendo.
Esta función no tiene en cuenta la separación estéreo que se
ha utilizado en Channel.set_volume
. El objeto Sound
también
tiene su propio volumen que se mezcla con el del canal.
Consulta si el canal está activo.
Channel.get_busy(): return bool
Retorna True
si el canal está reproduciendo audio, y retornará False
si el canal está inactivo.
Obtiene el sonido que se está reproduciendo actualmente.
Channel.get_sound(): return Sound
Retorna el objeto Sound
que se está reproduciendo en este canal. Retornará
None
si el canal está inactivo.
Coloca un objeto Sound
en la cola para seguir al actual.
Channel.queue(Sound): return None
Un objeto Sound
comienza a reproducirse inmediatamente después de
otro si se coloca en la cola de reproducción del canal. Cada canal
solo puede tener un sonido en cola al mismo tiempo. El sonido en cola
solo se reproducirá si el sonido actual finaliza normalmente. En otro caso, si
se llama a Channel.stop()
o Channel.play()
, el sonido en cola
se cancelará.
El sonido comenzará a reproducirse inmediatamente si no hay otro sonido en curso.
Retorna cualquier objeto Sound
que esté en cola.
Channel.get_queue(): return Sound
Se retornará el sonido que esté en cola para este canal. Una vez que el sonido comienza a reproducirse ya no estará en la cola de reproducción.
Hace que el canal envíe un evento cuando la reproducción finalice.
Channel.set_endevent(): return None Channel.set_endevent(type): return None
Cuando se define un evento de terminación para el canal, se enviará un
evento a la cola de eventos cada vez que un sonido termine de reproducirse
en este canal (no solo la primera vez). Use la función pygame.event.get()
para recibir el evento de terminación una vez que halla sido enviado.
Note que si ha llamado a Sound.play(n)
o Channel.play(sound, n)
, el
evento de terminación se enviará una sola vez, luego de reproducirse “n+1” veces (vea
la documentación de Sound.play
).
Se enviará el evento de terminación inmediatamente si se llama a Channel.stop()
o Channel.play()
mientras el sonido está en reproducción.
El argumento type
indica el identificador de evento para enviar
a la cola de eventos. Puede ser válido usar cualquier tipo de evento, aunque
una buena elección debería ser optar por un valor entre pygame.locals.USEREVENT
y pygame.locals.NUMEVENTS
.
El canal dejará de enviar eventos si se llama a esta función sin argumentos.
Obtiene el evento que un canal emite cuando finaliza la reproducción.
Channel.get_endevent(): return type
Retorna el tipo de evento que se enviará cada vez que el canal termina
de reproducir un objeto Sound
. Esta función retornará pygame.NOEVENT
si el canal no tiene asignado un evento para emitir.