aplay以外のコマンドでも音を鳴らしてみたいのでgstreamerのalsasinkで音を試してみる。
GStreamerのバージョン
gstreamerには0.10系と1.0系があり、1.0にバージョンを移行しようとしている。 ただ、あまり進んでいないのか、両方が混在したシステムが多い。 GStreamerのチュートリアルも0.10系をベースに書かれていたり、意外とGStreamer1.0の情報は見つけづらい印象。
しかし、ここでは将来性を考えて1.0系を導入する。
meta-gstreamer1.0について
yoctoではGStreamer1.0のレシピを集めたmeta-gstreamer1.0が存在する。 ただし、最近はメンテナンスされていないようで、 meta(無印)の方がバージョンが新しい。このため、meta-gstreamer1.0は導入しない。
GStreamer1.0関連のパッケージの追加
poky/meta-local/recipes-core/images/rpi-basic-image.bbappend の内容を以下のようにする。
IMAGE_INSTALL += " alsa-lib \ alsa-utils \ gstreamer1.0 \ gstreamer1.0-libav \ gstreamer1.0-plugins-base \ gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad \ gstreamer1.0-plugins-ugly \ "
local.confの修正
以下の行を追加する。 これをしないと、LICENSE関連でエラーになる。
LICENSE_FLAGS_WHITELIST += "commercial"
ビルド
bitbake
以下のコマンドでイメージを作成する。
$ bitbake rpi-basic-image
書き込み
SDに書き込む。
$ sudo dd if=./tmp/deploy/images/raspberrypi2/core-image-weston-raspberrypi2.rpi-sdimg of=/dev/sdb bs=40M
実行
サウンドドライバの組み込み
まずはドライバを組み込む
# modprobe snd_bcm2835
これを忘れると音が出ずにエラーになる。
alsasinkの動作確認
gst-launch-1.0というコマンドで任意のGStreamerパイプラインを実行することができる。 以下のようにして、alsasinkの動作を確認する。
# gst-launch-1.0 audiotestsrc ! alsasink
これで音が出れば成功。