2013-08-19 3 views
1

J'utilise this guide pour transformer mon Raspberry Pi en émetteur FM. Je peux enregistrer l'audio, scp dessus et ensuite le jouer en utilisant la méthode décrite dans le guide. Mon but est d'utiliser un microphone sur mon PC principal pour diffuser de l'audio sur le réseau vers le Pi, avec le tuyau vers le programme PiFm.Diffusion audio vers la radio Raspberry Pi

Je n'arrive pas du tout à lire un fichier audio, même localement sur le Pi. Voici la méthode prescrite pour la lecture d'un fichier audio à l'aide IPME:

sudo python 
>>> import PiFm 
>>> PiFm.play_sound("sound.wav") 

J'ai essayé d'ajouter fileinput au fichier PiFm.py en utilisant this method mais lorsque je tente de donner un fichier WAV comme un argument, ou un tuyau dans, je reçois l'erreur suivante:

[email protected] ~/radio $ sudo python PiFm.py sound.wav 
Traceback (most recent call last): 
    File "PiFm.py", line 11, in <module> 
    play_sound(line) 
    File "PiFm.py", line 7, in play_sound 
    call(["./pifm", filename]) 
    File "/usr/lib/python2.7/subprocess.py", line 493, in call 
    return Popen(*popenargs, **kwargs).wait() 
    File "/usr/lib/python2.7/subprocess.py", line 679, in __init__ 
    errread, errwrite) 
    File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child 
    raise child_exception 
TypeError: execv() arg 2 must contain only strings 

Voici mon fichier PiFm.py:

#!/usr/bin/python 

from subprocess import call 
import fileinput 

def play_sound(filename): 
    call(["./pifm", filename]) 
    return 

for line in fileinput.input(): 
    play_sound(line) 

Répondre

0

Essayez:

PiFm.play_sound(u'sound.wav'.encode('utf8'))