ラズベリーパイ:USB接続のスピーカーでMP3を鳴らす

Raspberry Pi

3.5mmイヤホンジャックではなく、USB接続のみのスピーカーを使ってラズベリーパイからコマンドラインでMP3ファイルを鳴らす方法です。

結論から言うと以下の3点が必要です。

  • USBスピーカーをラズパイにつなげる
  • USBデバイスのチェック(aplay -l)
  • mpg321にオプションをつけて再生する(mpg321 -a hw:xxx:yyy filename)

音源はMP3でのみ再生するアプリはmpg321を利用します。(本当は再生アプリにomxplayerを使って鳴らしたかったのですが、よく分からなかったです)

USBスピーカーをラズパイにつける

使ったスピーカーはかなりコンパクトなトーホーのMS-U1というスピーカーです。(価格.comでみたらヨドバシが一番安かったのでそちらで2580円で購入しました)

ちなみにわたしは初代ラズパイ(Raspberry Pi B)に上記写真のようにとりつけました。
ラズパイのUSBポートにつなげるだけです。

初代ラズパイはUSBポートが2つしかなく電源供給に不安があるので、一旦ラズパイの電源を落としてからUSB接続しました。

USBスピーカーで再生するためにUSBデバイスのチェックをする

例えばchime.mp3というファイルを再生する場合、mpg321だと

mpg321 chime.mp3

で再生できますが、USB接続のスピーカーだとこのままでは再生できません。

出力先のUSBデバイスの番号を調べる必要があります。

aplay -l

を実行します。

わたしの場合、以下のように表示されました。

pi@raspberrypi ~ $ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA]
サブデバイス: 8/8
サブデバイス #0: subdevice #0
サブデバイス #1: subdevice #1
サブデバイス #2: subdevice #2
サブデバイス #3: subdevice #3
サブデバイス #4: subdevice #4
サブデバイス #5: subdevice #5
サブデバイス #6: subdevice #6
サブデバイス #7: subdevice #7
カード 0: ALSA [bcm2835 ALSA], デバイス 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 1: UACDemoV10 [UACDemoV1.0], デバイス 0: USB Audio [USB Audio]
サブデバイス: 1/1
サブデバイス #0: subdevice #0

pi@raspberrypi ~ $

USB Audio~となっている行の項目が必要な情報です。

カード」と「デバイス」の後ろにある番号が必要な数字になります。(上記の場合だとカード1とデバイス0となっているので、1と0が必要な数字です)

aplayコマンドはwaveファイルなどの再生にも利用できますが、-lオプションをつけると端末で利用可能なデバイス情報を表示してくれます。

mpg321にオプションをつけて再生する

mpg321がラズパイにインストールされていない場合は、以下でインストールします。

sudo apt-get install mpg321

または

sudo apt install mpg321

mpg321は、MP3形式のファイルを再生できるアプリです。

例えば、chime.mp3というファイルを鳴らしたい場合は以下のようになります。

mpg321 -a hw:1,0 chime.mp3

hw: の後の数値が先ほどaplay -l コマンドで得た数字です。

わたしの場合、カード1デバイス0だったので、hw:1,0 となっています。

mpg321-aオプションは出力先を表しています。
hw:の後の数値は、カード番号とデバイス番号を,(カンマ)で区切ります。

ちなみに音量調整0~100の間で-gオプションで指定できます。
 例)mpg321 -g 50 -a hw:1,0 chime.mp3

以上、ラズベリーパイ:USB接続のスピーカーでMP3を鳴らすでした。

コメント

タイトルとURLをコピーしました