android-x86を導入したComputeStickから音声が出ない その2
前回の続き
前回は、Android-x86導入のComputeStickで、HDMIから音声を出力することに成功しました。
しかし、次回、ComputeStickを起動した際には、音声出力先の変更内容が保存されておらず、再度変更する必要があります。
このままでは、いちいちコマンドを入力する必要があり、面倒です。
そこで、起動時に自動的に音声出力先の変更がなされると便利です。
今回は、ComputeStickが起動した際に、自動的に音声出力先の変更をおこなう設定をしていきたいと思います。
はじめに
本来は、init.shと呼ばれるブートスクリプトをターミナルで編集することで、起動時の動作を変更することができますが、トラブルにより編集ができませんでした。
そこで、代替策としてMacroDroidを用いて、そこからシェルスクリプトを自動的に実行する手法を取りました。
あまり、効率的なやり方とは思えませんが、手法の一つとして記しておきます。
使用したもの
「MacroDroid」という名の自動化アプリケーション(というのかな?)を使いました。
GooglePlayストアにて、無料でインストールすることができます。
https://play.google.com/store/apps/details?id=com.arlosoft.macrodroid
また、このアプリはシェルスクリプトの実行ができるため、起動時のシェルスクリプトの実行を本アプリで担うことができます。
マクロの作成
MacroDroidでマクロを作成することで、好きなプログラムを自動起動できるようになります。
マクロには3つの要素が設定でき、実行するキッカケの「トリガー」、動作させる内容の「アクション」、マクロ自体の実行の可否を制御する「条件」があります。
「ドリガー」と「アクション」は最低でも1つ以上設定する必要があります。(「条件」の設定は任意)
マクロの3要素
アクションを追加
「アクション」の項目では、「アプリ」→「シェルスクリプト」を選択します。
「アクション」の項目で、「アプリ」→「シェルスクリプト」を使用します。
「シェルスクリプト」の中に、自動起動させたいコマンドを入力します。(コマンドは、前回の記事のステップ3と6を参照)
alsa_amixer -c1 set 'IEC958',0 on
alsa_amixer -c1 set 'IEC958',1 on
alsa_amixer -c1 set 'IEC958',2 on
alsa_amixer -c1 set 'IEC958',3 on
mv /dev/snd/pcmC1D0p /dev/snd/pcmC1D0p.original
ln -sf /dev/snd/pcmC1D2p /dev/snd/pcmC1D0p
トリガーを追加
「トリガー」の項目では、「機器の動作」→「機器本体を起動時」を選択します。
「機器本体を起動時」を選択。
最後に変更内容が保存すれば、MacroDroidが自動起動された際に同時にマクロも起動されます。




コメント
コメントを投稿