Medoly Ver. 3.3.5

サボってた更新履歴を書く。

2019-03-31 Ver. 3.3.5

  • プラグインのインターフェースを変更
  • 文字コード変更機能追加
  • サイドメニューのタブを下に移動
  • 出力デバイス設定が適用されない問題修正
  • フォントサイズを変更した際に一部文字が見切れる問題修正
  • 歌詞・アルバムアートが検索されない問題修正
  • プラグインインベントが2重に起動する問題修正
  • 再生キュー削除時のバグ修正
  • ジャンルの修正

2019-03-31 Ver. 3.3.5

プラグインのインターフェースを変更

プラグイン周りのインターフェースを変更しました。これに伴い、各種プラグインもアップデートしています。これらを利用するためには、すべてのアプリをアップデートする必要があります。
今回プラグインインターフェースを変更したのは、プラグインの起動に失敗した場合のエラーを検出するためです。特定のメーカーに搭載される省電力機能など、バックグラウンドのアプリ起動が抑制されている場合に、プラグインが起動メッセージを受け取れない事象が発生することが分かりました。具体的には、Asus の「自動起動マネージャ」によってバックグラウンドのアプリ起動が抑制されている場合に発生する事象を確認しています。
これはユーザ様からの報告によって発覚しました。自分でもASUSの端末を1台持っていたので割とすぐに原因が発覚したのですが、持っていなかったら原因不明で終わるところだった…。
ちなみに、起動に失敗した場合意は「○○の起動に失敗しました」というメッセージが表示されます。

文字コード変更機能追加

メディアのタグおよび歌詞の文字コードを変更する機能を追加しました。
これは、ユーザ様からの「MP3のタグが文字化けする」という意見が来たために対応しました。しかもこれは、同時期に2件の要望が届いていました。1件は日本語でしたが、もう1件はロシア語でした。
これに対し、日本のユーザ様から文字化けするサンプルのMP3ファイルをもらった上での対応を行いました。
Medolyでは文字コードの判定に「juniversalchardet」を使用しています。このライブラリではテキストのバイナリを与えると、テキストの文字コードを返し、文字コードの判定に失敗するとnullを返します。ところが、頂いたファイルを調べて見ると、文字コードはShift_JISにも関わらず、Windows-1252を返していました。恐らくバイト列がたまたま上手く判定できない並びになっているものと推測しましたが、これを改善する方法が思いつきませんでした。そこで、判定結果がWindows-1252になる場合もnullと同様に失敗と見なすことにしました。
さらに、判定に失敗した場合の処理も変更しています。従来は判定に失敗した場合、利用する言語によって異なる文字コードを返すような処理を行っていました(日本語ならShift_JIS)。ただ、それだと使う言語によって判定結果がブレてしまうので、ユーザが任意に設定できるようにしました。
具体的には、文字コードを選択するダイアログを追加しています。プロパティ一覧のうち、メディアまたは歌詞の「文字コード」→「変更」を選択するとダイアログが開きます。

ここで選択した文字コードが、判定に失敗した文字コードとして利用されます。ダイアログ上方の「強制的に適用」にチェックを入れると、文字コードの判定を行わずに強制的に文字コードを適用しますが、利用する場面はまず無いと思います。何となく気分で付けただけです。

サイドメニューのタブを下に移動

サイドメニュー(ドロワーメニュー)の「プレイリスト」「プラグイン」のタブを下側に移動しました。理由は、上側は指で押しにくいからです。個人的には割と頻繁に切り替える部分なので、操作しやすい下側タブへ変更しました。

出力デバイス設定が適用されない問題修正

出力デバイスの切替えを行った際に、設定が適用されないバグがあったので修正しました。
前バージョンの実装ミスです。

フォントサイズを変更した際に一部文字が見切れる問題修正

端末のフォントサイズを変更した際、画面上の一部文字が切れてしまってきちんと表示されない場合があったので、修正しました。具体的には、文字サイズを自動的に調整するようにしたり、文字サイズが変わらないように指定方法を変えたりしています。

歌詞・アルバムアートが検索されない問題修正

これはユーザ様のバグ報告です。外部ファイルのアルバムアートや歌詞ファイルの検索において、ファイル名に括弧が含まれていた場合に検索できないという問題がありました。
これは、検索に正規表現を使用していたのですが、そのエスケープがうまくできていなかったことが原因でした(括弧が正規表現として処理されていた)。そのため、検索文字列のエスケープが正しく行われるように修正しました。

プラグインインベントが2重に起動する問題修正

一部プラグインイベントが2回起動してしまう問題があったので修正しました。割と前のバージョンから発生していたのですが、気付いていませんでした。

再生キュー削除時のバグ修正

再生キューを削除した際に、再生中のメディアが停止してしまう問題があったので修正しました。これも結構前のバージョンから発生していたのですが、気付いてなかったです。

ジャンルの修正

MP3等のメディアでは仕様上、ジャンルの指定に名前ではなくコードを指定することができます。今までこのジャンルコードに対応していなかったので、画面上にはコードがそのまま表示されてしまっていたのですが、これをジャンル名として表示するように修正しました。
これは実はずっと認識していたのですが、面倒なので放っておいただけです。今回、ユーザ様の利用しているMP3ファイルでこのジャンルコードを使用していることが判明したため、せっかくなので対応しました。