OPPO(ColorOS)のBT音楽再生問題

僕がこの記事執筆時点に使っているスマホは、OPPO Reno A という機種。
有機EL、高性能カメラ、防水、NFCと、機能面では全く文句無しに素晴らしいのだが、Android OS 上に OPPO があれこれ(余計な)手を加えていて、これが少々面倒な問題を発生させることがある。今回はそのような問題の一つを解決できた・・・かもしれないというお話だ。

僕がバイク上でスマホを使う主な用途は、ナビアプリ(Navitime ツーリングサポーター)と音楽プレーヤー(Poweramp)の2つ。
ヘルメットのインカムとスマホをBluetooth(BT)で接続して、ナビの案内音声と音楽プレーヤーの再生音を聴きながら走っている。
インカムには音楽再生/停止と音量増減ができるボタンが付いている。これらのボタンを操作すると、BT上のAVRCPというプロトコルを用いてスマホに指令が送信され、然るべき反応(音楽が再生される等)が行われることとなる。
なお、僕の OPPO Reno A 上には、標準インストールされている「音楽」という名称の使えねえプレーヤーの他に、有償アプリの Poweramp と無償アプリの foobar2000 mobile がインストールされている状態なのだが、音楽再生のデフォルトアプリは Poweramp に設定済。
ここまでが前置き。

さて、先に生じた問題状況から説明しよう。
フォアグラウンドにツーリングサポーター、バックグラウンドに Poweramp が動いていて、音楽が再生されている状態でインカムの音楽再生/停止ボタンを押下して音楽を一時的に停める。例えば信号待ち時に隣のバイクの人から話しかけられた場合等の状況を想像して欲しい。その後、音楽再生を再開しようとしてインカムの音楽再生/停止ボタンを押下すると、何故かデフォルトに設定した Poweramp では無く、標準インストールの「音楽」アプリが勝手に起動してきて再生を開始してしまうのだ。
しかも、この「音楽」アプリ、ROM上にある電話着信メロディーをスキャンしてきてライブラリに収納しているようで、勝手に再生を始めるのはおバカっぽい着メロだったりする。このときの精神的ダメージはなかなか馬鹿にならないのだ。
これを何とか解決したい(素直にデフォルト設定した音楽プレーヤーだけがボタンに反応して欲しい)と長い間試行錯誤を繰り返してきた。

ダメだった対策:
・設定/アプリ管理で、システムプロセスを表示する状態にしたうえで「音楽」アプリを選択し、「無効にする」に設定。
→ それでもインカムボタンに反応して、「音楽」アプリが元気に立ち上がってくる。無効化って何の意味があるの?
・タスクスイッチ画面で、Powerampを「ロック」してバックグラウンドから勝手に停止されないようにする。
→ 効き目なし。Poweramp の生死に関係なく、「音楽」が立ち上がってくる。

考察:
色々調べてみた感じでは、BT上のAVRCPプロトコル(多摩川リバーと同様の表記になってしまうがご容赦)で Android が受け取った「音楽再生/停止」コマンドをアプリに渡すときの振る舞いに怪しい点がありそう。どのアプリに渡すのかをユーザーが明示してコントロールできれば解決するのではないか・・・とここまで考えた。

とりあえずの解決策:
で、Android 開発者向けの英語サイトをあちこち回って情報収集したところ、Media Button Router というアプリを発見。
このアプリがまさに、Android が受け取った「音楽再生/停止」コマンドをアプリに渡すときに介入して、コマンドを受け取れるアプリをリストアップし、ユーザーが音量増減ボタンでリストから選択して一つを指定するという動作を行うもの。結構古い Android バージョン向けのアプリなのだが、試してみた限りでは最新の ColorOS (記事執筆時点で6.0.1、ベースは Android9)でも問題無く使用できている。
Media Button Router の設定画面で設定した項目は以下。
・Enable を On にする。
・Conservative を On にする。(デフォルトアプリを選択してくれればそれで良しなので、この項目を On にしてみたのだが効果不明)
・Confirm Selection を Off にする。(そもそも複数から選択する気は無いのね)
・Disable text-to-speech を On にする。(いちいちうるさいので)
・Apps to Show In The Selector のリストから、Poweramp だけを On に、その他全て(特に「音楽」アプリね)を Off にする。

以上の設定により、インカムの「音楽再生/停止」ボタンを押下すると、ついに Poweramp が、そう Poweramp だけが、素直に反応してくれるようになった。ありがたや(感涙)。

ただし、長時間使用していて Media Button Router が ColorOS により自動的に停止させられてしまう場合があるので、タスクスイッチ画面でMedia Button Router を「ロック」しておくとよろし。ついでに PowerAMP もロックしておこう。
それと、この方法でも100%完璧に所望の動作をする感じでもなく、時々インカムのボタンに誰も反応しなくなったりすることもあるので、広い心でおおらかに受け止めて欲しい。

OPPO のスマホをBT経由で利用しているバイク乗りの皆さん(ってのがこのBLOGの読者にどれほどいるんだろ^^;)のご参考まで。

(2022-03-14追記) その後、OPPO Reno A のGPSがときどき不安定になる(位置情報を更新しなくなる)等の困った問題が生じたので、OPPO Reno 5 A (ColorOS11/Android11) に買い替えてみたのだが、BT音楽再生問題はきれいさっぱり解消されていたことをご報告する。Powerampが起動されていない状態でも、インカムの音楽再生ボタンを押下すると自動的に Poweramp が起動されて、音楽再生が開始する・・・という当たり前の動作が行われるようになったよ。超快適。

コメント