pyaudioのサンプル素材は理解できませんでした。彼らは小さなプログラム全体を書いていて、それは私を捨てたようだ。単一のオーディオファイルを再生するにはどうすればよいですか?フォーマットは問題ではなく、オーディオファイルを再生するのに必要な最低限のコードを知りたいだけです。pyaudioファイルを再生するのに役立ちます
4
A
答えて
9
この例はかなりわかりやすいようです。
python playwav.py my_fav_wav.wav
いくつかの余分なコメントを波例:
import pyaudio
import wave
import sys
# length of data to read.
chunk = 1024
# validation. If a wave file hasn't been specified, exit.
if len(sys.argv) < 2:
print "Plays a wave file.\n\n" +\
"Usage: %s filename.wav" % sys.argv[0]
sys.exit(-1)
'''
************************************************************************
This is the start of the "minimum needed to read a wave"
************************************************************************
'''
# open the file for reading.
wf = wave.open(sys.argv[1], 'rb')
# create an audio object
p = pyaudio.PyAudio()
# open stream based on the wave object which has been input.
stream = p.open(format =
p.get_format_from_width(wf.getsampwidth()),
channels = wf.getnchannels(),
rate = wf.getframerate(),
output = True)
# read data (based on the chunk size)
data = wf.readframes(chunk)
# play stream (looping from beginning of file to the end)
while data != '':
# writing to the stream is what *actually* plays the sound.
stream.write(data)
data = wf.readframes(chunk)
# cleanup stuff.
stream.close()
p.terminate()
12
例のこの小さなラッパー(警告:ひざまずいて作成されたもの)は、作成したコードの意味を理解するのに役立ちます。
import pyaudio
import wave
import sys
class AudioFile:
chunk = 1024
def __init__(self, file):
""" Init audio stream """
self.wf = wave.open(file, 'rb')
self.p = pyaudio.PyAudio()
self.stream = self.p.open(
format = self.p.get_format_from_width(self.wf.getsampwidth()),
channels = self.wf.getnchannels(),
rate = self.wf.getframerate(),
output = True
)
def play(self):
""" Play entire file """
data = self.wf.readframes(self.chunk)
while data != '':
self.stream.write(data)
data = self.wf.readframes(self.chunk)
def close(self):
""" Graceful shutdown """
self.stream.close()
self.p.terminate()
# Usage example for pyaudio
a = AudioFile("1.wav")
a.play()
a.close()
関連する問題
- 1. Android Shoutcast:1.6でShoutCastストリーミングを再生するのに役立ちます
- 2. スレッド(AsyncTask)のデバッグに役立ちます。
- 3. redux-immutableは役に立ちますか?
- 4. iPhoneアプリケーションでビデオを再生するのに役立つ
- 5. Pyaudio:再生エラー:4
- 6. linqクエリをnhibernateに翻訳するのに役立ちます
- 7. 301 redirect - WordPress - htaccessファイルのハックを確認するのに役立ちます
- 8. PHPのinclude/requireを理解するのに役立ちます
- 9. hsqldbのスキーマsqlを作成するのに役立ちます
- 10. snakegame-javascriptのバグを修正するのに役立ちます
- 11. 再び立ち往生 - MySQLのクエリに
- 12. javascriptのjsonファイルでノードにアクセスするのに役立ちます
- 13. SQL select文を作成するのに役立ちます
- 14. ストアドプロシージャからgridviewを作成するのに役立ちます
- 15. Java、android - コードを理解するのに役立ちます
- 16. C++ヘッダーファイルとクラスを理解するのに役立ちます
- 17. 継承とリレーショナルコンセプトを接続するのに役立ちます
- 18. クラッシュを象徴するのに役立ちます
- 19. アセンブリ - 手順プロローグを理解するのに役立ちます
- 20. .htaccess - 動作を理解するのに役立ちます
- 21. 悪いコードを理解するのに役立ちますか?
- 22. jquery-ajax関数を改善するのに役立ちます
- 23. apacheを理解するのに役立ちます
- 24. iPhoneアプリケーションを起動するのに役立ちます
- 25. アンドロイドでopencvを実行するのに役立ちます
- 26. NSManagedObjectContextDidSaveNotificationは役に立ちませんか?
- 27. androidのjavaで変換するのに役立ちます
- 28. エラーが発生したモーズモジュールは原因の特定に役立ちます
- 29. ANRとクラッシュ(ログを読むのに役立ちます)
- 30. サービススタックのDTOパターンは本当に役に立ちますか?
しかし、私は印刷物が必要ですか? – JShoe
ありがとう!全く複雑すぎるもの! LOL ... – JShoe
私は 'サーバーのリクエストチャンネルに接続できません ' 'ジャックサーバーが起動していない、または起動できません。' –