raspberry pi(raspbian)で「pygame.mixer.music.queue」が動かない話
実質的には1回目の投稿にも関わらず成果物ではなくてこんな話.
タイトル通りに「pygame.mixer.music.queue」が動かない話です.
以下環境
・ハード:Raspberry Pi3 Model B
・OS :RaspbianJessie with PIXEL January 2017
・言語 :Python 3.4.2 (↑に同梱されているまま)
で,連続した音声を再生するプログラムをつくろうとしたら
「pygame.mixer.music.queue」が動かない.
python初学者のためプログラムミスかと思いましたがどうにも動かない.
ググってみるもpygameを扱った日本語サイト少なくて悪戦苦闘.
仕方なしに英語サイトをググって出てきたのが↓の.
Raspberry Pi • View topic - pygame.mixer.music.queue not working for me!
要約すると「おま環」らしい.
というわけで迂回技術
import wave
def get_wav_length(voice_file_name):
wf = wave.open( voice_file_name , "r" )
wav_length = wf.getnframes() / wf.getframerate()
return wav_length
pygame.mixer.music.load( "ファイル名.wav" )
sleeptime = get_wav_length( "ファイル名.wav" )
pygame.mixer.music.play()
time.sleep ( sleeptime )
もともとタイムクリティカルなものを扱う言語ではないので,
これで実用上は問題なし.
ただ,あくまでWAVE形式のみの機能となる.
都度生成する必要がないのならば,CSVファイルに再生時間を書き出しておいて,
それを読み込むのも手ではある.