自作音楽プレーヤー改良
FirstUPDATE2021.7.7
@Scribble #Scribble2021 #プログラミング #Android #音楽 単ページ Automagic MP3プレーヤー

以前から書いている自作音楽プレーヤーの話の続きです。

復習しておきますが、ここでアタシが<自作>としているのは、けして「アプリを作った」なんて大仰な話じゃない。つかアタシにはアプリを作るだけの技能はありません。
アタシがやっているのは「Automagic」という、いわば「JavaScriptに近しいスクリプトも使える自動化アプリ」を使って自分のニーズに合う、というか自分のニーズにしか合わない音楽再生<装置>を作ったに過ぎません。

繰り返しになりますが、アタシの音楽再生アプリへのニーズとは、ひと言で言えば「完全曲中レジューム対応」です。この一点だけ。しかしアタシが探すに「プレイリストを切り替えようが曲の位置を憶えている」アプリがひとつもなかったので自作に踏み切ったのです。

前回までの時点で音楽ファイルの再生にはAutomagicの音楽再生コマンドを使っていました。
正直<曲間>レジュームであれば(ま、音質を無視すればだけど)これで十分なんだけど、<曲中>レジュームを実現させたければかなり特殊な実装をしなければなりません。つまりは相当ややこしいことをしなきゃダメなわけで、どうしてもバギーになりやすい。

そんな時、「MXPlayer」の存在を思い出した。
これは音楽再生アプリではなく完全に動画再生に注力したアプリなんだけど、これ、かなりしっかりとした「再生位置の記憶」が出来るんですよ。
で、ですね、動画プレーヤーとはいえ音楽再生、つまりMP3やなんやの形式にも対応している。つまり、コレを上手く使えればもっと使い勝手が上がるんじゃないかと。
かといって所詮は動画プレーヤーだし、そのままでは無理。
で、考えたのが

・プレイリストから読み込み→どのファイルを再生するかを「Automagic」で
・実際に音楽を再生するのを「MXPlayer」で

というふうにしてみたのです。
これが実現したら数々のメリットがある。

・面倒くさい再生位置を記憶させるための秒数管理が必要なくなる
・シークが可能になる
・イコライジングなどの音質の調整が可能になる
・やろうと思えば動画のプレイリストにも対応出来る

うん、これはやるだけの価値があるなと思って改良を始めたのですが、一番の難関は「曲が終わる→次の曲を再生する」、つまり「曲が終わったことをどう判断するか」でした。
これは結局、MXPlayerでバックグラウンドで再生している時は通知が出るので、んで再生が終了したら通知が消えるので、通知を監視して「通知が消えたら次の曲を再生」というふうにしようと。

これは上手くいった。いったんだけど、どうもね、スリープ状態っつーかロックされている状態の時は通知の監視が上手くいかないみたいで。
だから「長尺のファイル」(=ラジオ音源など)に限ってMXPlayerを使うことにした。で、短いというか通常の音楽の場合は今まで通りAutomagicのMP3再生機能を使って、その代わり曲中レジューム機能を廃止しました。
通常の音楽なら曲間レジュームが出来れば十分で、停止の度に曲頭から始まっても問題ないし、長尺の音源の場合、頻繁にファイルが切り替わらないので自動で次の曲に移らなくても問題がない。

しかも最近になって分離型のワイヤレスイヤホンを買ったので(あくまで実験のためなので超安物だけど)、ケースからイヤホンを取り出すだけで音楽が自動で始まるように出来た。もちろんケースに収めれば自動で再生が止まる。
これが思ったよりも素晴らしく、もっとちゃんとした、ま、音質はこだわらないけどノイキャン機能があってバッテリーが保つ、そこそこの値段の分離型ワイヤレスイヤホンを購入するか検討中です。

とりあえずこれで気持ち良く使えるようになった。これ以上となると、前々からずっと言っている「インテリジェンス音楽再生プレーヤー」の作成なんだけど、これは骨が折れすぎるからなぁ。







Copyright © 2003 yabunira. All rights reserved.