2020年6月22日月曜日

pygame 音声ファイルを再生後に、書き換えできない(パーミッションエラー、プロセスが使用中)


クローズをしないと、プロセスが使用しているので
ファイルを消したり
ファイルを書き換えたりできない。

結構、ネット上には悩んでいる人が多かった。
mmapなどでもやったがダメ。
別ファイルで利用する例が多かったが、同じファイル名で処理したい場合はダメ。


そこで、
結論は以下のように、自分でファイルをオープンして
ファイルオブジェクトで音楽ファイルを取得すると大丈夫。
最後に後始末、music.stopをしてクローズする

クローズ後には、ファイルを自分で自由に使う事ができますよ!
書き換えたり、削除したり


f=open('test.wav')
pygame.mixer.music.load(f)
f.close()