いじめ(操作)格好良い

 Androidひつまぶし編(違)。
 いやはや、酷い不具合を見付けてしまった。nextボタンを連打すると大変なことになる(笑エナイ)。
 楽曲再生の準備(prepare)を非同期で行っているので、その間にまた次のを処理しようとして、というのを繰り返す内にイベントが溜まりまくってやがては応答不能で落ちる。ははは。こういういじめ操作は気の利いた人なら真っ先に試す試験だよね。いやはや情けない。
 取り敢えずprepare中はボタン入力を無視するようにした。この分連続スキップの反応は悪くなるんだけど、サンプルも標準添付アプリも同じ挙動なのでそれでいいかと思う。
 という訳で、ver0.03。
>AlbumShuffle003.apk (※提供元不明のアプリを許可で)

 まぁ慌てずとも誰が使うものでもない気もしますが、一応万が一に。
 この辺でしばらく水面下に潜って整理・改修かなーとも考えているので、変なバージョンをネットの片隅に晒し続けるのも賢明ではないなと。

 因みにBluetoothボタン制御の件は試した感じ今考えているやり方で良さげ。ただそもそも優先アプリにしてしまうとそれは即ち標準プレイヤーに成り上がるということなので、現状の低機能局地戦仕様だとあまりにおこがましい事になってしまう。なので上の0.03には入れていない。入れるならconfigでオンオフ出来るようにしてからだね。他にもボタン割り当てを個人仕様にしていたりして(ボタン数が少ないのでより使う機能を当てたい)、この辺のカスタマイズ機能も入れたいなと思いつつ。
 その前にUIどうにかしろってな。<自分はどうせBTでしか操作しないので後回しにしがち
 え、アイコン?(笑)

Mass Effect 3

 Mass Effect 3、開始。
 いやぁ、相変わらずの会話ゲーだね(笑)。むしろTPSパートは「割とどうでもいい」というか。アデプト無双で適当にクリアして今日もまた会話の日々が始まる、そんな感じ。
 それに何より今回はキャラ間の会話が非常に強化されている。前作も仲間内で軽く相槌を打つ程度のやりとりは用意されていたけれど、今回は完全に「会話」している。それも任意に選んだキャラとの会話。いやもう、普通にただ選んで連れて行ったキャラがもりもり会話を始めたものだからびっくり。またこれが三作目ということですっかりキャラも出来上がっているから、会話内容も弾んで非常に楽しい。レックスとギャレスってあれ、こんな仲良かったっけ?(笑)(1の頃はまだ絡みもなかったしね)。そして負けず劣らず新参のAIちゃんも話に割り込みたがる。こういう、会話でキャラの肉付けをしていく手慣れた感じは、流石はドラマで馴らしている国だと言えるのかもしれない。

 又、今回は物語性も強調されている感じ。
 軽く流れを書いてしまうと、リーパーの侵攻が始まってそれに対抗するために種族間の連立を行わなければならないということで、ここで出てくるのが私の大好きなジェノファージ(遺伝子病)ですよ。勿論のことクローガン代表レックスを中心に、前作2のモーディンのサブイベント(本筋じゃない)を絡めたシナリオが進行。いやはや、真面目に一通りプレイしてきた努力がここでようやく結ばれたと言いますか。
 しかしここでふと思うのが、先の会話の件にしてもそうだけど、前作レギュラーのギャレスはプレイによっては死ぬ可能性があるし、治療担当のモーディンに至っては死にやすいキャラの筆頭、レックスなんてそもそも1で殺す選択肢があるし、これ前作までにキャラが死んじゃってた場合どうなるんだと。ジェノファージの治療の成否も選択肢次第で大きく分かれた筈だし、ここに来てこれまでの経緯が内容に大きく影響する構造になった?のかもしれない。まぁもしかしたら代用で何とか同じように納めるのかもしれないけど、しかし今回ばかりは正直別人に役割が振られてもあまりピンと来ないというか、彼らのキャラクターがあってこその会話なりシナリオという気がするのですよ。実際どうなるのだろう。
 この点、今回はニューゲームでも過去の経緯を選ぶ事が可能らしいので、気が向いたら別の道をプレイしてみても良いかもしれない(気が早いよ)。まぁそれはまたクリア後に。何かストーリーは最後が一悶着ありそうな噂。これまたどうなるかな。

ランダム再生つづき

 さて、Android暇潰し編。
 Bluetoothボタン制御は出来るには出来たのだけれど、標準プレーヤーがやっているような非起動状態からボタン一発で起動させる方法がはっきりしない。普段から、Bluetoothデバイスを取り出して接続して再生という風に本体の操作無しで済んでしまっているので出来ればこれもやっておきたい。
 イベントレシーバに登録しないとボタンのイベントが取れないようで、登録するのは構わないのだけどそれをいつ解除すれば良いのかという。サービスを立ち上げっぱなしというのもどうかと思うし、一旦登録したらずっと解除しない(メニュー操作で明示的に解除させる)というのも手なのかもしれないけど、登録したままアプリをアンインストールするとあら大変と言いますか。ちょっとかなり行儀が悪い。そもそもアンインストール時の後片付けをやりたい時ってどうやるの?とか調べ出しても良い回答が出てこないのは困りもの。まぁ次善の策として、Bluetoothの接続・切断イベントは任意に受け取れるので、切断時にレシーバを解除しておけば不意のアンインスコ事故も比較的防げるかもしれない。

 という訳で早速脱線しております。脱線じゃないか。まぁハードウェア制御はこういうものと。
 しかも本題の方は、よくよく見ると公式のサンプルに如何にもなのが転がっているじゃないですか(ものは普通のトラック単位のランダムだけれども)。音楽再生に関する作法が一通り押さえられているので、それを参考にすればするほど当然というか必然というか似たようなコードになっていって、何かもうサンプルソースをベースに手を入れた方が早いんじゃないの?とか思ってしまう罠。
 とはいえ必要のない部分はまだ読んでいないし、それで問題があっても「サンプル通りなので分かりません」は人としてどうかと思うので、流用よりは模倣の方がまだマシというものであろうかと。

 そんなこんなのver0.02。
>AlbumShuffle002.apk (※提供元不明のアプリを許可で)

 暫定暫定で試しているのでここから先は少し大掛かりな整理をしていかないといけない。
 まぁプログラミングなんて作り直してナンボだと思いますけどね。
 一方、MassEffect3が発送されたけれど、どうするかなぁ。

Androidでランダム再生

 あまりのテンションの低迷ぶりに「何もしない」と決めたはいいが、そうと決めると途端にヒマにあぶれる罠。しょうがないのでAndroidアプリ開発でも始めてみた。前々から欲しかった機能があって、従来そういう物は探せば何処かで見付かってしまうものだったけれど、何だかもう探すのも面倒くさくなってしまって(ぉぃ)。

 そんな訳で今回作ってみたのは、mp3プレーヤCreative Zenにあった「Today’s Album」という機能の再現。
 ボタン一発でその日その日のアルバムを選んで再生してくれるというもので、つまるところは「アルバム単位でのランダム再生」。楽曲はアルバム単位で聴きたいけど、アルバム自体はランダムで選びたい、そういう時に丁度良い。UIが良いとは言えなかったZenでは殆どこの機能ばかり使っていた。

 Android開発を始めたとは言っても、仕事で基本的な所は既に触れていたので初めてではない。必要な所を調べながらざっくり形にしてみた。メディア周りの一切をシステムが提供してくれるからこその、このお手軽日曜大工。サービス周りは初めてで少し手間取ったけれど。
 勿論UIは超暫定、多分アプリ名も暫定、アイコンはアイリ。そんなところで宜しくお願いします(ぉ)。
>AlbumShuffle.apk (※提供元不明のアプリを許可で)

 UIも色々考えないといけないけど、個人的にはBluetoothのボタン制御も対応させないといけない。むしろ機能性から言えばこっちが先だなー。また面倒くさくなる前にそこまではやらないと(笑)。