pygame y reproducir MP3
Carles Pina i Estany
carles en pina.cat
Mie Dic 3 19:21:29 CET 2008
Hola,
On Dec/03/2008, Arnau Sanchez wrote:
> Carles Pina i Estany escribió:
>
>> tengo datos muy curiosos, ahora:
>> carles en pinux:~/pygame$ python
>> Python 2.5.2 (r252:60911, Sep 29 2008, 21:15:13) [GCC 4.3.2] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> import pygame
>>>>> pygame.mixer.init()
>> there is no soundcard
>>>>> pygame.mixer.init(44100)
>>>>> pygame.mixer.music.load("Qt4Dance.mp3")
>>>>> pygame.mixer.music.play()
>
>>>>
>>
>> Esto funciona! (bien!)
>>
>> (el hecho: si no pongo 44100 en el mixer.init desde el script no encuentra la
>> tarjeta de sonido (!!) )
>>
>> Pero esto mismo en un fichero y ejecutado:
>> carles en pinux:~/pygame$ ./test.py there is no soundcard
>> carles en pinux:~/pygame$
>>
>> :-o
>>
>
> Primero, tienes razón en lo que dices en el otro correo, pygame ahora usa
> ALSA (si no estoy equivocado antes iba con OSS)
bueno, antes todo iba con OSS :-D (depende del antes)
> He estado probado, y si no se indica la frecuencia de muestreo (y por
> tanto va a 22050, el valor por defecto), se oyen clicks muy molestos en
> el audio. Poniendo 44100 va bien. Mirando por internet hay mucha gente
> que efectivamente usa este último valor, aunque es una pena que el valor
> por defecto dé tantos problemas (a ti no te va, a mi me da clicks, etc).
Ojo ojo! Quizás te saltaste una parte interesante de mi correo. Desde el
script NO funcionaba y desde la consola de Python sí. Raro, no?
Hoy lo he encontrado. Tengo que llamar dos veces a pygame.mixer.init!:
#!/usr/bin/python
import pygame
import time
pygame.mixer.init(44100)
pygame.mixer.init(44100)
pygame.mixer.music.load("Qt4Dance.mp3")
pygame.mixer.music.play()
time.sleep(100)
print "adeu"
Esto funciona, pero si llamo una sola vez no funciona. Y si lo llamo sin
44100 funciona a 22050 y oigo los chasquidos.
> pre_init se usa para establecer los valores de configuración del
> mezclador, pero realmente no lo inicializa. Después, cuando hagas un
> pygame.init, el mezclador se inicializará con los parámetros indicados en
> el pre_init.
sí, lo ví después de enviar el mail.
Por tanto, en mi versión de Pygame y mis drivers necesito inicializarlo
dos veces... y a 22050 funciona con chasquidos.
Haré las pruebas que quería hacer ayer y quizás pruebo la versión -devel
de pygame y reporto el error si sigue allí.
1000 gracias,
--
Carles Pina i Estany GPG id: 0x17756391
http://pinux.info
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es