Pythonで簡単に音楽ファイルを再生する方法
プログラミング言語Python(パイソン)について。
mp3、m4a等
私が考える「Pythonで一番簡単に音楽ファイルを再生する方法」を記載します。
概要は以下になります。数分で作業できると思います。
- VLCメディアプレーヤーをダウンロード・インストール
- PythonでVLCをインストール
- Pythonでコーディング
「Pythonで再生するためだけに音楽プレーヤーをインストールしたくない」という気持ちには激しく同意ですが、多分これが一番簡単だと思います。
subprocessで実現する場合には、デフォルトプレーヤーが起動する気がしますが、以下に記載する方法は別プレーヤーは起動せず、作成したプログラム内で再生し、一時停止や終了もプログラムできます。
確認環境
- Windows 10 Home(64bit)
- Python 3.8.2(64bit)
- VLC 3.0.11115
VLCメディアプレーヤーをインストール
VLCメディアプレーヤーのサイトからダウンロードしてインストールします。
オレンジ色のボタンクリックでダウンロードします。自分に合ったシステムを選択しましょう。
Windows 64bit版 Ver.3.0.11は約40MBでした。
当方の環境では、2分程度でインストールできました。(ダウンロード時間を除く)
日本語にしたい方は、インストール時の言語指定で日本語を選択してください。
起動するとこんな感じです。↓
Pythonプログラムとして必要なのはVLCメディアプレーヤーのモジュールですので、Python上で音楽ファイルを再生するためには、VLCメディアプレーヤー自体を起動する必要はありません。
ちなみに「VLC」とは、当初のプロジェクト名「Video LAN Client」に由来しているようです。
VLCをインストール
プログラミングに必要なVLCパッケージは以下のような感じでインストールしてください。
1 |
python -m pip install python-vlc |
Pythonで音楽再生サンプルコード
python-vlc 使い方
以下、サンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
import vlc import time # GUIで再生するときは別スレッドにしてください # https://sapporo-president.com/archives/16794 参照 # 関数ざっくりリファレンス # mp = vlc.MediaPlayer() # コンストラクタ インスタンス作成 曲指定も可能 # mp.set_mrl('曲ファイル名') # 曲指定 # mp.play() # 再生開始 # mp.stop() # 再生終了 # mp.pause() # 一時停止または再開 # mp.set_time(ms) # 時間を設定 # mp.get_time() # 開始からの経過時間を取得(ms) # mp.audio_set_volume(volume) # ボリューム変更 # vlc.MediaList() # 再生リストを作成 # 以下サンプル # 曲指定 mp = vlc.MediaPlayer() # インスタンスを作成 mp.set_mrl('C:\\Users\\user\\Music\\iTunes\\LiSA\\紅蓮華 - Single\\01 紅蓮華.m4a') # 音楽ファイルを指定 # 上の2行は下のようにコンストラクタに引数渡して1行で書くことも可能です。 # mp = vlc.MediaPlayer('C:\\Users\\user\\Music\\iTunes\\LiSA\\紅蓮華 - Single\\01 紅蓮華.m4a') # 再生~終了 mp.play() # 再生開始 time.sleep(3) # 3秒待って(この間、音楽は流れています) mp.stop() # 再生終了 # 一時停止 time.sleep(3) # 3秒後に mp.play() # 頭から再生開始 time.sleep(3) # 3秒待って mp.pause() # 一時停止 time.sleep(3) # 3秒待って mp.pause() # (続きから)再生再開 time.sleep(3) # 3秒待って mp.stop() # 再生終了 # 曲変更 time.sleep(3) # 3秒待って mp.set_mrl('C:\\Users\\user\\Music\\iTunes\\SOUL\'d OUT\\Single Collection\\10 イルカ.m4a') # 曲変更 mp.play() # 頭から再生開始 time.sleep(3) # 3秒待って mp.pause() # 一時停止 mp.set_time(60000) # 曲の開始から60秒後を設定し mp.pause() # 60秒の部分から再生再開 time.sleep(3) # 3秒待って mp.stop() # 再生終了 |
こんな感じです。
音楽プレーヤーを自作することも可能ですし、DJのように曲を切り替えるプログラムを作るのも可能です。
ちなみにVLCメディアプレーヤーをインストールしていないと、プログラム実行時にdllのFileNotFoundErrorとなります。
補足
私の場合、VLC部分のコーディングをしてスクリプトを実行したときにdllのFileNotFoundErrorとなり、VLCメディアプレーヤーが必要だということに気付きました。
エラー内容は、スクリプトのパスにdllがないというものでした。
そこからVLCメディアプレーヤーをインストールしただけで問題が解決しました。python-vlcは再インストールもアンインストールもしていません。
つまり、(VLCメディアプレーヤーのインストールにより)パスが通っているところに問題のdllがコピーされたということです。
iTuneに入れた曲のパス
念のためですが、iTunesに入れた曲の場所は以下のように探すことができます。
iTunes上で目的の曲を右クリック→「曲の情報」
↑表示された画面で[ファイル]ボタンをクリック
↑画面下にファイルの場所が表示されます。
「SOUL'd OUT」の曲を再生したい場合は、ファイル名に「'(アポストロフィ)」が入っている可能性がありますので、エスケープを忘れずに。
動作サンプル
以下のGUIプログラムで、実行ボタンクリック時に曲を再生しています。
ソースはありませんが、色々な動作が見れます。
音声あり動画です。
参考サイト
以上。
後記
最後までお読みくださりありがとうございます。
こんなに更新したのに、現在はほぼ誰も見ていないゴミカスクズ無価値ブログです。
よければ(はてな)ブックマークや拡散をお願いいたします。
更新の原動力として励ましが欲しいのです…<(_ _)>
ディスカッション
コメント一覧
まだ、コメントがありません