1

このガイドを使用して、Raspberry Pi を FM 送信機に変えています。オーディオを録音scpして、ガイドに記載されている方法を使用して再生できます。私の目的は、メイン PC のマイクを使用して、オーディオをネットワーク経由で Pi にストリーミングし、それを PiFm プログラムにパイプすることです。

Piでローカルであっても、オーディオファイルをまったくパイプできないようです。PiFm を使用してサウンド ファイルを再生するための規定の方法は次のとおりです。

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

このメソッドfileinputを使用して PiFm.py ファイルに追加しようとしましたが、引数として WAV ファイルを指定しようとしたり、パイプインしようとすると、次のエラーが発生します。

pi@raspberrypi ~/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

ここに私の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)
4

1 に答える 1

0

試す:

PiFm.play_sound(u'sound.wav'.encode('utf8'))
于 2013-08-19T07:39:31.917 に答える