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パッケージは以下のような感じでインストールしてください。
python -m pip install python-vlc
Pythonで音楽再生サンプルコード
python-vlc 使い方
以下、サンプルコードです。
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プログラムで、実行ボタンクリック時に曲を再生しています。
ソースはありませんが、色々な動作が見れます。
音声あり動画です。
参考サイト
以上。
後記
最後までお読みくださりありがとうございます。
こんなに更新したのに、現在はほぼ誰も見ていないゴミカスクズ無価値ブログです。
よければ(はてな)ブックマークや拡散をお願いいたします。
更新の原動力として励ましが欲しいのです…<(_ _)>
ディスカッション
コメント一覧
まだ、コメントがありません