Pythonで簡単に音楽ファイルを再生する方法

2020-08-16

プログラミング言語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プログラムで、実行ボタンクリック時に曲を再生しています。

ソースはありませんが、色々な動作が見れます。

音声あり動画です。

参考サイト

以上。

後記

最後までお読みくださりありがとうございます。

こんなに更新したのに、現在はほぼ誰も見ていないゴミカスクズ無価値ブログです。

よければ(はてな)ブックマークや拡散をお願いいたします。

更新の原動力として励ましが欲しいのです…<(_ _)>

当ブログ内お薦め記事