「Funner」の曲と「TSUTAYA~」の曲が被って再生される件
この記事は確認出来た事とそれにより推測される事で書いています。
よって間違いが有るかも知れません。
その点、ご注意下さい。
前回の続きです。
Funner、TSUTAYA Music PlayerとLBT-MPHPC20 - Y!mobileとDIGNO T(302KC)のユーザー日記
「Funner」の曲と「TSUTAYA~」の曲が被って再生される件ですが、 恐らくこれは[TSUTAYA~」以外のミュージックプレイヤーでも起こるのだと思います。
しかも全てで。
「TSUTAYA~」がその機能を提供するのに「PlaybackService」というサービス(プログラム)を使用しています。
「PlaybackService」で検索を掛けると2chのスレが掛かります。
「PlaybackService」の記載に次のような事が書いてあります。
- カレント曲情報を貰う
- 再生処理、停止処理
- 再生状態(再生中 or 停止中)
- シャッフルの状態、リピートの状態
- 再生しいてる曲の情報
この事から考えられる事は、「PlaybackService」はAndroidで用意されている音楽ファイルを操作する為のプログラムであり、他のミュージックプレイヤーも利用しているのではないでしょうか?
アプリを作るのにその全てのプログラムを自ら作るのは面倒で、効率悪いですから。
内容によってはOSが用意するプログラムを使用しなければ、実現出来ない機能も有りますからね。
なので「TSUTAYA~」以外のミュージックプレイヤーでも起こるのでは?と思う訳です。
※以下、全てのパターンを試した訳では有りません。
先ずは「PlaybackService」が停止している状態から。
「TSUTAYA~」を起動させただけでは「PlaybackService」は起動しません。
「TSUTAYA~」は起動していない、又はバックグラウンド(画面に表示していない)状態では、イヤホンのボタンには反応しません。
フォアグラウンド(画面に表示して操作出来る)状態でのみ、イヤホンのボタンに反応し、選択されている曲が再生されます。
この状態でバックグラウンドに遷移すると曲は停止し、再生は途中からではなく最初からとなります。
「PlaybackService」は曲の単独画面に遷移した時に起動します。
次は「PlaybackService」が起動している状態から。
イヤホンボタンのあらゆる操作が可能です、「TSUTAYA~」のフォア、バックは関係有りません。
再生中は「PlaybackService」も動作し続けます。
再生していない状態では、「TSUTAYA~」の状態を問わず、1分で「PlaybackService」は終了します。
このような動作をするので「Funner」中に「PlaybackService」が動作しているとイヤホンの再生ボタンを押せば「TSUTAYA~」で直前に聞いていた曲が再生され、「Funner」の曲とミックスされた何とも言えない音が流れて来ます。
例えばバスに乗っている間「TSUTAYA~」で曲を聞き、降りてから目的地迄歩くので、「Funner」で曲を聞く。
音量調整するのにイヤホンのボタンを押し間違える。
簡易ミキサー再生の出来上がりです。
「TSUTAYA~」の切り替えから1分経過していれば起きないのですが、この1分って十分起こり得る長さでは?
複数のミュージックプレイヤーをインストールしていれば、競合して誤動作するのかな?
関連する別の動きとして、以下のようなものが有ります。
画面の左上に「TSUTAYA~」の小さなアイコンが表示される場合が有ります。
再生中にナビゲーションバーの「戻る」キーでホーム画面に戻った時に表示され、「Google Analytics Service」が起動します。
この状態では「最近使ったアプリ」から「TSUTAYA~」を消しても再生し続け、イヤホンのボタンにも反応します。
この状態を終了するには「TSUTAYA~」を表示した状態で、曲の再生を停止する必要が有ります。