こんにちは! けい(Twitter)です。
- mp3をラズパイで再生する方法が知りたい方
- pythonプログラムで実行したい方
目次
ラズパイのオーディオ環境
ディスプレイにHDMIを繋ぐ方法
ラズパイをディスプレイに直接HDMIで繋いでいる方は、ディスプレイのスピーカーからラズパイの音声出力が出ているはずです。
まずyoutubeなどで、音が出るかを試してみましょう。
HDMIを接続しているのに音が出ない場合は、HDMIケーブルに音が伝わっていなかったり、ディスプレイのスピーカーの故障などが考えられるので、次の方法を試してみて下さい。
ラズパイのA/V out端子にスピーカーを繋ぐ方法
こちらの方法の方が確実性が高いので、おすすめです。
写真はラズパイ3B+のオーディオ端子を示しています。
オーディオ端子にスピーカーを接続します。
Omxplayerを使用してコマンドラインでmp3を再生
mp3を再生
omxplayerは、RaspberryPi OSをインストールすると、デフォルトでインストール済です。
なので、新たにインストールする必要がなく、mp3を再生できます。
また、動画も再生することができます。
一応omxplayerのインストールコマンドです。
$ sudo apt update
$ sudo apt install omxplayer
では、さっそくmp3ファイルを鳴らしていきたいのですが、mp3ファイルを用意する必要があります。
そこでラズパイ公式が紹介している、こちらのコマンドでmp3ファイルをダウンロードしてみます。
$ wget http://rpf.io/lamp3 -O example.mp3 --no-check-certificate
現在のディレクトリに「example.mp3」というファイルがダウンロードされます。
このファイルを使って、次のコマンドでmp3を再生してみます。
$ omxplayer example.mp3
いかかでしょうか?
このように簡単にmp3ファイルを再生することができます。
オプション
オプションを指定することもできます。
次のコマンドでオプションで何を変えられるかを見ることができます。
$ omxplayer -h
HDMI経由で音声を出したいときは次のコマンドを実行します。
$ omxplayer -o hdmi example.mp3
イヤホンジャックから音声を出したい時は次のコマンドを実行します。
$ omxplayer -o local example.mp3
HDMIとイヤホンジャック両方から音声を出したい時は次のコマンドを実行します。
$ omxplayer -o both example.mp3
他にもオプションは沢山あるので、試してみて下さい。
pythonでmp3を再生
omxplayerはコマンドで実行するため、pythonでsubprocessを使えば、python上でコマンドを実行することができます。
サンプルコード
from time import sleep
import subprocess
MP3_PATH = 'example.mp3'
args = ['omxplayer', MP3_PATH]
process = subprocess.Popen(args)
sleep(5)
args = ['kill', str(process.pid)]
subprocess.Popen(args)
2行目:import subprocess
pythonでコマンドを実行するために、subprocessをimportします。
7行目:process = subprocess.Popen(args)
この行でコマンドを実行しています。
実行したいコマンドは、「omxplayer example.mp3」です。
コマンドの文字列をargsに格納し、subprocess.Popenの入力としています。
11行目:subprocess.Popen(args)
最後にプロセスを終了するために、killコマンドを実行します。