2017-01-26

総ダウンロード数が5000を超えました

1/24で、合計ダウンロード数が5000を超えました。



この数値は、総インストール数の合計値なので、複数端末でダウンロードしても同一アカウントの場合は1とカウントされるはずです。公開してから今までだいたい5000人以上がダウンロードしているということです。

この5000という数値は、Google Play上で区切りの数値となります。Google Playのアプリのページでは5000ダウンロードからは以下のように表示されるようになります。


増加率を見ると、驚くほど変化がありません。まぁ徐々に増えているという感じではあります。



ちなみに、開発者向けに公開されているアクティブなユーザ端末数(1ヶ月以内に使用されたインストール端末数)は931台です。この全員が使用しているのかどうかは分かりませんが、アプリをバージョンアップすると800台ぐらいはバージョンアップされていくので、実際にはそれぐらいが利用されているのではないかと思ってます。

そんなこんなで、ぼちぼち開発を続けていきたいと思いますので、今後ともよろしくお願いします。





2017-01-21

Medoly Ver. 2.9.0

Ver. 2.9.0

2017-1-21 Ver. 2.9.0
- 表示タブ内のコントロールバー追加
- ストレージアクセス処理変更(Android 7.0対応)
- 編集モードのサムネイルタップで再生/未再生切替え
- 外部ファイルのキュー追加がエラーとなる問題修正
- その他各種修正

表示タブ内のコントロールバー追加

表示タブ内に、コントロールバーを表示するようにしました。可能な操作は、再生コントロールバー(メイン画面最下部のバー)の内容です。

これは、レイアウト設定のチェックボックスをONにした上で、タブ内のボタンを表示状態する必要があります。表示タブのダブルタップまたは、ピンチアウト操作で表示タブを拡大した際、再生コントロールバーが非表示になると、自動的にタブ内に表示します。
これは、画面を最大化した際に再生コントロールボタンが非表示になってしまい、再生操作が行えなかったという問題に対応したものです。
また、コレに合わせて内部のクラス構成を色々弄ってます。もし以前と挙動が変わった部分があれば報告いただけると助かります。


ストレージアクセス処理変更(Android 7.0対応)

ストレージアクセス処理を見直しました。

ユーザストレージ(内蔵ストレージまたは外部ストレージ)のみアクセス可能で、その他にはアクセスできません。これは、最近の端末だとユーザが操作可能なストレージ以外にアクセスすると、エラーとなってファイル操作ができなくなる場合があるためです。
一部端末には、初期状態でユーザストレージ領域外にメディアが配置されているものがありますが(Huawei P9 Liteで、/system/media/Pre-loaded/Music フォルダに「Dream It Possible」という曲が置いてあるのを確認しました。ちなみに、LRCファイル付き。)、今回の変更でストレージからアクセスすることはできなくなります。こうした曲を再生した場合は、タグ情報の検索から取得するようにしてください。


編集モードのサムネイルタップで再生/未再生切替え

再生キューの編集モード時、サムネイルをタップすると、メディアの再生/未再生を切り替えられるようにしました。従来通り、ドラッグ&ドロップによる順序の変更やメディアの削除もできます。


外部ファイルのキュー追加がエラーとなる問題修正

他のアプリからメディアをMedolyに渡した場合、エラーとなる場合があった問題を修正しました。


その他各種修正

その他諸々修正しました。

  • 再生キュー完了時に通知が消せなくなる問題修正。
  • 表示タブのメニューをタップした際にタップ音が2重に鳴る問題修正。
  • 表示タブ内の文字をアウトライン文字に変更。
  • 検索画面でLoading...が表示される条件を、メディア100個以上→500個以上に変更。
  • 検索画面でメディアがない場合のメッセージを追加。
  • ファイル共有の動作一部変更。

2017-01-16

Android 7.0におけるストレージアクセス

現在、Android 7.0でMedolyを使用すると、ストレージのフォルダが一部見えなくなる問題があります。これは、Android 7.0においてセキュリティ上の関係か、ストレージのアクセス処理が一部変更になっているためのようです。
また併せて、プロパティから「開く」や「共有」が使用できなくなっている問題も発生しています。これはAndroid 7.0における同様の問題です。

現在対策を練っているところなので、 しばらくお待ち頂ければと思います。正直、Android のストレージアクセス処理はクソ面倒臭いのですが、個人的にもよく利用するため必ず対応します。ただ、一部制限が発生する可能性もありますので、その辺はご了承いただければと思います。

2017-01-01

Medoly 課題管理の公開

あけましておめでとうございます。
本年もよろしくお願いします。

唐突ですが、以下のページにMedolyの課題管理ページを公開しました。
ここには、課題、問題点、バグ報告、要望など、何かしら報告があった場合にご書き込んでいただけると助かります。
言語は日本語、英語何れでも構いません。


wa2c / medoly2 / 課題 - Bitbucket
https://bitbucket.org/wa2c/medoly2/issues


現在、ソースコードのリポジトリにBitbucketを利用しているので、そこにあるサービスをそのまま使用しています。bitbucketの利用には、アカウント登録が必要になります (Googleアカウントでもログインできたはず)。

ちなみに、ソースコードは公開されていないのでご了承ください…。

2016-12-27

Medoly Ver. 2.8.5


久々の更新となります。難しい更新を行っていたとかそういうわけでもなく、ただ単に他の作業をしていて更新が停滞しているだけです。


Ver. 2.8.5

2016-12-21 Ver. 2.8.5
- 歌詞表示をアウトライン文字に変更
- メディアの長さから再生中アクション実行時間を設定する機能追加
- ウィジットのレイアウト追加・変更
- 言語の変更設定追加
- タブの表示を保持するように変更
- メッセージ一部修正
- ヘッドセット接続時のみ再生を行う設定追加
- シャットダウン時にメディアが破損状態となる問題修正
- 歌詞スクロールが再生位置とずれる問題修正
- 1曲も存在しない場合に検索がエラーとなる問題修正


歌詞表示をアウトライン文字に変更



今まで、歌詞のテキストに影を表示していました。これは、歌詞のテキストが背景に表示されるアルバムアートの内容によって見えにくくならないようにするためのものでした。今回、この影をやめて、アウトライン文字(文字の周囲を線で囲んだ文字、囲い文字、袋文字とも呼ばれる)に変更しました。
変更理由…というか、そもそも3年前の一番最初の開発段階でアウトライン文字にする予定でした。ところが、やり方が分からず断念していたというのが本当のところです。最近、少し落ち着いたところで色々調べていると、MagicTextView というライブラリを見つけ、こちらを参考にしてアウトラインテキストを実装してみた次第です。

変更前

変更後


 

メディアの長さから再生中アクション実行時間を設定する機能追加


プラグインのイベントアクション(自動的に実行されるアクション)に「再生中」イベントというものがあります。これは、メディアをある程度の時間再生し続けると「再生中」であると判断し、イベントを実行します。これは、ザッピング再生や頭出し再生で逐一実行されてほしくないアクションを実行するためのものです。例えば、再生時にTwitterに自動投稿したり、Last.fmに再生中を通知をする、といった使い方を想定しています。
この「再生中」イベントを実行するための時間は、今まで固定時間でした。初期値は30秒です。ところが、これでは30秒未満の曲では実行されません。そこで、今回の変更で全体の再生時間の割合からイベントの実行時間を設定できるようにしました。例えば、4分の曲で50%に設定すると、2分間続けて再生した時点で「再生中」イベントを実行します。(なお、途中で停止した場合はリセットされます。)
加えて、再生終了時点でイベント未実行だった場合は強制的に実行するオプションを追加しています。


ウィジットのレイアウト追加・変更


ウィジェットのレイアウトを追加・変更しています。具体的に言うと、レイアウト構成を1つ追加(4番目)し、従来の1番目のレイアウトと3番目のレイアウトを交換しています。現在のレイアウトは以下の4種類です。全てサイズは可変(最小サイズ:2x1)のため、サイズを変更してご利用ください。

追加したレイアウトは、以下のようなテキストのみのウィジェット表示を想定した物です。(画面のサイズによってはこの通りの表示にならない可能性があります。)



レイアウトの交換については、(旧)3番目のレイアウトは他3つとは少し毛色の異なるレイアウトなので、特別扱いで先頭に持ってきています。



言語の変更設定追加


設定画面に[その他] > [言語] 設定を追加し、言語の変更が行えるようにしました。従来、言語設定はシステム環境の言語設定に応じて変更していましたが、手動で切り替えられるようにしました。
まぁ、今のところは日本語と英語しかありませんが。英語に関しては内容が非常にダメな感じですが
 

タブの表示を保持するように変更


アプリをバックグラウンドから再表示した際に、タブの表示(再生キュー、表示、プロパティ)を保持するようにしました。これはどちらかと言えば、保持する方法(起動時に切り替える方法)が分かった、と言った方が良いかもしれません。


メッセージ一部修正


メッセージ内容を一部修正しています。文言の見直しです。


ヘッドセット接続時のみ再生を行う設定追加


設定画面の[操作] > [操作] に「ヘッドセットのみ再生」を追加しています。これは、イヤホンやBluetoothが接続されていない場合、再生を開始させないようにするための設定です(メッセージが表示されます)。スピーカーから音を鳴らしたくない場合に使用します。


シャットダウン時にメディアが破損状態となる問題修正


従来、端末をシャットダウンした際に、選択中のメディアが破損状態になっていました。これは、シャットダウンの際に、何故か標準のメディアプレイヤーライブラリからエラーが返ってくるためです。何故このような挙動をするのかは知りません。
この対策として、シャットダウン時にシステムからブロードキャストされるシャットダウンメッセージを受信すると、アプリを強制終了する処理を加えました。


歌詞スクロールが再生位置とずれる問題修正


非同期歌詞メディアを再生して、表示タブでスクロール位置を強制的に変更した後、同期歌詞を再生した際に前回の非同期歌詞のスクロール位置がリセットされずに保持されてしまう問題がありました。
長らく謎だったこの原因を究明したところ、メディアが切り替わり、歌詞が切り替わる間に僅かなタイムラグが生じており、その間にスクロールが割り込むと、とリセットされたスクロール位置が現在のスクロール位置で上書きされてしまうために問題が発生していました。
処理の関係上これを変更することが難しかったので、現在選択中のメディア情報を歌詞側に保持しておき、相違があった場合にスクロール位置の設定を無効にするという処理を加えています。



1曲も存在しない場合に検索がエラーとなる問題修正


これは、メディアが1件も存在しない場合に検索画面でエラーが発生するという問題があったため、ちょっと修正しました。まぁ、メディアが1つも存在しない人間がこのアプリを使うか、という話ではあるのですが…。

2016-11-09

旅行中

大変私的な話で恐縮ですが、現在フランスを旅行中です。
色々見て回ってます。

2016-10-01

Medolyプラグインのソースコードを公開しました

本日、MedolyプラグインのソースコードをBitbucketに公開しました。


Medoly Last.fm Scrobbler Plugin

Medoly Twitter Plugin

Medoly Lyrics Scraper Plugin


ライセンスはMITです。

元々ソースは公開するつもりでいたのですが、インターフェース部分の見直しをしてから公開しようと思っていました。ところが、その見直しを今までズルズルと先延ばしにしていたため、こんなタイミングになってしまいました。

もし興味があればどうぞご参考ください。


ちなみに、Last.fmプラグインとTwitterプラグインは、APIキーが含まれているソースファイルが欠けた状態になっています。Token.java.rename ファイルをを Token.java にリネームするとビルドできると思いますが、APIキーが含まれていないため、このままでは動作しません。動かしたい場合は、別途自分でLast.fmやTwitterのサイトからAPIキーを取得してコードに埋め込む必要があります。

元々、APIキーが含まれるソースコードをどうやって公開したものかと悩んでいたのですが、結局こんなやり方になってしまいました。どなたか、もっと上手い方法があれば教えていただけると幸いです。そこまでしてAPIキーを非公開にしても、アプリが偽装されるぐらいなのでそこまで大した影響はないかと思っているのですが、念のためです。所詮、apkファイルを展開されて強引に見ようと思えば見られる代物ですしね。


Bitbacketの公開サイトに課題も書き込めるようになっているので、もし何かバグとかあれば報告していただけると助かります。

ちなみに、Medoly本体は公開しないのかと思われそうですが、内部的に色々見せたくない恥ずかしいコードもあるので、もうしばらく先になりそうです…。