Play MP3s from Windows

Arlie arlie.c at gmail.com
Fri Jun 19 19:16:05 EDT 2009


Hi,

Newbie here. I copied and pasted the code below. But when I ran it I
got this error:

D:\>python mp3.py
Duree du fichier :  298919  millisecondes
Traceback (most recent call last):
  File "mp3.py", line 37, in <module>
    time.sleep(int(buf)/1000)
ValueError: invalid literal for int() with base 10: ''

The code:

# -*- coding: utf-8 -*-

import time
from ctypes import windll, c_buffer

class mci:
    def __init__(self):
        self.w32mci = windll.winmm.mciSendStringA
        self.w32mcierror = windll.winmm.mciGetErrorStringA

    def send(self,commande):
        buffer = c_buffer(255)
        errorcode = self.w32mci(str(commande),buffer,254,0)
        if errorcode:
            return errorcode, self.get_error(errorcode)
        else:
            return errorcode,buffer.value

    def get_error(self,error):
        error = int(error)
        buffer = c_buffer(255)
        self.w32mcierror(error,buffer,254)
        return buffer.value

    def directsend(self, txt):
        (err,buf)=self.send(txt)
        if err != 0:
            print'Erreur',str(err),'sur',txt,':',buf
        return (err,buf)

mci=mci()
mci.directsend('open "d:\\Linger.mp3" alias toto')
mci.directsend('set toto time format milliseconds')
err,buf=mci.directsend('status toto length ')
print 'Duree du fichier : ',buf,' millisecondes'
err,buf=mci.directsend('play toto from 0 to '+str(buf))
time.sleep(int(buf)/1000)
mci.directsend('close toto')


#@-salutations
#--
#Michel Claveau

Please help. I'm in the middle of a project and I wanted to use this.



More information about the Python-list mailing list