ffmpegのplayでPermissionError: [Errno 13] Permission denied:と表示された際の解決方法

環境:
windows10 64bit home 1909
anoconda3
Python3.7

 

前回は、ffmpegでフェーズイン・フェーズアウトする音声ファイルの作成をしましたので、今回はそのファイルを使って再生しようと思います。

音声が徐々に大きくなりったり小さくなったりしてみたい方は以下の記事を読んでみてください。↓

フェーズイン・フェーズアウトしたファイルの作成

 

今回はその続きなのですが、困ったことに、作成したファイルを再生しようとすると

以下のエラーが送出されどうやら、「許可が拒否」されたとのこと・・

 

Traceback (most recent call last):
  File "C:/Users/chiraura/PycharmProjects/bell/test.py", line 22, in 
    play(sound3)
  File "C:\Users\chiraura\Anaconda3\lib\site-packages\pydub\playback.py", line 71, in play
    _play_with_ffplay(audio_segment)
  File "C:\Users\chiraura\Anaconda3\lib\site-packages\pydub\playback.py", line 18, in _play_with_ffplay
    seg.export(f.name, "wav")
  File "C:\Users\chiraura\Anaconda3\lib\site-packages\pydub\audio_segment.py", line 780, in export
    out_f = _fd_or_path_or_tempfile(out_f, 'wb+')
  File "C:\Users\chiraura\Anaconda3\lib\site-packages\pydub\utils.py", line 57, in _fd_or_path_or_tempfile
    fd = open(fd, mode=mode)
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\chiraura\\AppData\\Local\\Temp\\tmp2nhpe6zi.wav'

Process finished with exit code 1

 

調べてみると、simpleaudioをインストールすると解決するらしい。

ので,早々インストールしてみました。
参考サイト:https://github.com/jiaaro/pydub/issues/209

simpleaudioのインストール

pip install simpleaudio

Successfully と表示されているので、無事インストール完了↓

Collecting simpleaudio
  Downloading https://files.pythonhosted.org/packages/c4/7b/a802613a1c2f8558931325711270cffc220e35cefe4060d8e4ef7cfc552a/simpleaudio-1.0.4-cp37-cp37m-win_amd64.whl (2.0MB)
     |████████████████████████████████| 2.0MB 2.2MB/s
Installing collected packages: simpleaudio
Successfully installed simpleaudio-1.0.4

インストール後無事エラーは解消され再生されました。

音楽を再生する

イザ、♫音楽再生♫

全体のコードは、前回の記事に以下のコードを足しただけです。

play(sound3)

実際にできたのは蛍の光♫ 終業時の再生のために作りました。

 

やっと、再生できたので、タスクスケジューラに登録できるようにパッチファイルを作成し実行

パッチファイルの作り方

パッチファイルには以下のように「Python」 と 書き半角スペースを空け「再生したいPythonのスクリプト」を記載するだけでOKです。

python C:\Users\ユーザー名\PycharmProjects\bell\test.py
スポンサーリンク
スポンサーリンク

Python print関数の基本と便利な使い方

Python3.7のprint関数の基本的な使い方から、文字間に文字や記号を入れたい・文字列を改行したい・windowsのアドレスをそのまま表示したいけど文字にシーケンスの『\n』が含まれて上手く表示されない時など・・便利な使い方をまとめました。初心者でもわかりやすいように心がけて記載しています。

スポンサーリンク
スポンサーリンク