従来機能の改変は完了
今は、Mirror-DTC Ver1.4.4の開発フェーズで、既に、β版を公開中なのだが、Android版AGMPlayerの更新を割り込ませている。今日の時点で、従来機能の改変は終わったので、新機能の追加作業に移る。
従来機能の改変には、一般動画の再生時にも速度変更を可能にする、という項目と、ネット経由の音声再生時にもエフェクト表示を可能にする、という項目がある。
今日の時点で、上記の両方の項目に加えて、現行版だと速度変更の操作がスマートではないので、動画再生画面上に専用オーバーレイボタンを設置し、そのボタンを押す事で、速度変更候補をリスト表示し、そのリスト項目をタップする事で、その項目の速度に変更できる様なUI変更も行った。
同時に、頻繁に使いたいかなあ、という機能として、自動音量調節機能があったので、そのOn/Off設定についても、上記と同じインタフェースに変更したので、次バージョンからは、この機能も気軽に使える様になる筈だ。
なので、明日は、APIだけ調査していたAndroid機器のメディアフォルダーからAGMLibraryへの動画/音声ファイルの入力機能と、AGMLibraryからメディアフォルダーへの動画/音声ファイルの出力機能を実装する予定だ。
ちなみに、作者の手持ちAndroid機器としては、2019年末に発売開始されたシャープのスマホである所のAQUOS sense 3と、2022年末に発売開始されたNECの10インチタブレットである所のLAVIE Tab T10 T1075/EAS 102K1がある。
デバックは、Mac mini M2 Pro上のAndroid Studioで、USB接続したNECのタブレットを使って実機デバックしている。
Androidソフトの開発を始めた頃には、Windows PCを使って実機デバックしていたのだが、少なくともその頃には、接続するAndroid機器用に特別なデバイスドライバをインストールしないと実機デバックできなかった。
これに対して、MacにUSB接続したAndroid機器は、何も追加インストールしなくても、実機デバック用に利用できるので、今では、Androidソフトの開発はMacで行っている訳だ。
更に言えば、Mac mini M2 ProのCPUはARM系のAppleシリコンになる訳なので、実機デバックではなく、Androidエミュレータでデバック用に仮想機器を動作させても、超高速に動作してくれる。
と、言う事なので、Androidソフトの開発は、ARM系CPUが主流ではないWindows環境よりも、ARM系CPUが主流となったmacOS環境で行った方が何かと都合が良い訳だ。
しかし、Androidエミュレータで動作させると、タッチ操作は、マウスで代用する事になるので、シンプルな操作しかできない。
このため、作者的には、基本的には、実機デバックを行っているのだが、数日前に書いた様に、Androidというのは、様々なバージョンがリリースされてきて、かつ、互換性は確保されてきていない。
なので、Android用ソフトというのは、様々なバージョンのAndroid機器で動作させようとすると、様々なコードを各バージョン用に追加で書かなければならない事も多いのだが、そのデバック用に、各バージョンがインストールされた実機を使うのも大変だ。
このため、実機デバックで問題なく動作する様になったら、その次には、様々なAndroidバージョンで動作する機器をエミュレータ上で動かし、それらでのデバックも行う事になる訳だ。
と、言う事で、今のところ、実機デバックの段階なので、動作させているのはNECのタブレットにインストールされているAndroid13と、シャープのスマホにインストールされているAndroid11のみだ。
更に言えば、昨日までは、NECのタブレットでしか動作させていなかったので、このタイミングで、シャープのスマホにもインストールして動作確認しよう! としてみたら、早速、起動時にクラッシュする現象に見舞われた。
その理由は、Andorid11ではサポートされていない機能を使っていたからなので、とりあえず、その機能は使わない格好にしてインストールして動作確認したのだが、数日前に書いた様に、Androidのファイルアクセス機能用のAPIは過去に何度も変更されてきている。
なので、Android4.4までサポートしようとすると、かなり複雑怪奇なコードにする必要が出てくるかもしれない。
と、言う事を鑑みれば、次バージョンでは、そういう努力をする代わりに、古いAndoid機器を切り捨てる格好にする可能性もある。
なので、作者的には、Windows / macOS用ソフトでは、そんな事をしてきていない作者が、そんな事をする事になったとしたら、それは作者が悪いのではなく、Androidの設計者が悪い! と、思ってくれれば良いのだが、と、思ったりしている今日この頃だ。

