Medoly Ver. 2.6.5, 2.6.6

2016-01-31 Ver. 2.6.5
– 再生順序コントロール全体を変更
– ループコントロール変更
– 歌詞の空白表示タイミング変更
– Android 5.0以降でキー操作が正しく行われない問題修正
– 再生中歌詞の背景がずれる問題修正

2016-02-07 Ver. 2.6.6
– Android 6.0でポップアップが正しく表示されない問題修正
– Bluetooth非搭載機種でエラーとなる問題修正

Ver. 2.6.5

再生順序コントロール全体を変更

変更前

変更後

メイン画面左下のボタンを押して表示される再生順序コントロールポップアップメニューの内容を整理し、大きく変更しました。具体的な変更は以下の通り。

  •  「再生キュー完了」を「再生完了」に変更、メニュー名を一部変更しました。
    メニュー再整理です。「単体停止」のメニューを追加するためのグループ名変更です。
  •  「単体再生」を「ループ」に変更しました。
    ループのみでグループ化しました。これは、ループカウンタを追加するための変更です。
  • 一曲毎に停止する 設定を「再生完了」に移動しました。
    グループの変更です。ループ処理周りの変更のためです。
  • 区間ループ設定を削除しました(ループコントロールに移動しました)。
    区間ループの設定を別に独立させました。従来のコントロールは操作がし辛かったためです。
  • ループ回数の設定を追加しました。
    ループ回数設定を追加しました。全体ループ、区間ループ両方のループにおいて有効です。ループ回数が設定値を超えると、それ以上ループせず最後まで再生され、次の曲に移動します。ゲームの曲を1回ループさせて順次させていくとか、ヒアリング学習において数回ずつループして流すような使い方を想定しています。
    なお、ループ回数は、メイン画面上に表示され、ループ回数を超えた際に文字色が青く表示されます。
  • 「R:再開」を「F:埋める」に変更しました。
    これは、以前から分かりにくいなぁと思っていたので、今回に合わせて変更しました。頭の「F」は「Fill」だと思ってください。ちなみに、前回の「R」は「Recover」でした。

ちなみに、名前やグループが変更されたものについて挙動自体は変わりません。

ループコントロール変更

区間ループコントロール

再生順序コントロールに存在した区間ループコントロールを独立させました。再生順序コントロールで「区間ループ」を選択すると、シークバーの上に一段バーが増えます。
三角形とA/Bが書かれているボタンを押すと、現在の再生位置を区間ループ開始位置/終了位置として設定します。ちなみに、このボタンを長押しすると初期位置に戻ります。初期位置は通常、メディアの先頭/末尾になりますが、LOOPSTART/LOOPLENGTHが設定されたメディアはそれに合わせた位置になります。
両端にあるボタンにはループ位置(ms)を示す時間が書かれていますが、これを押すと、その時間を微調整するポップアップが表示されます。前後に10ms/1s(1000ms)調整できるボタンと、直接ミリ秒の時間を入力できる枠がありますので、お好みで調整してください。ポップアップを閉じた時点で確定されます。ちなみに隠し機能…というわけではなく単に分かりにくいだけですが、ポップアップのテキスト入力エリアを長押しすると、調整時間がリセットされ現在値に戻ります。

歌詞の空白表示タイミング変更

以前、同期歌詞において歌詞の空白行を歌詞の一部とするように変更しましたが、空白行における進行タイミングを少し調整しました。空白行の進行が少し前倒しになってます。

Android 5.0以降でキー操作が正しく行われない問題修正

Androd 5.0以降で、ヘッドセットのボタン等を初めとする各種操作が正しく処理できていなかったため、修正しました。

再生中歌詞の背景がずれる問題修正

これは少し細かくて難しい話です。
以前は、同期歌詞において複数行が同時にアクティブとなっている状態において、アクティブ行の背景のサイズは、後からアクティブになった行の背景のサイズに強制的に変更されていました。例えば、1行目が2行で表示、2行目が1行で表示されている歌詞において、両方がアクティブになると、1行目の背景が1行のサイズに縮小されてしまう事象が発生していました。
これは以前から気付いていたのですが、影響も少なく原因もよく分からなかったので放置していました。ところが、Webで色々調べ物していると、たまたま原因となる情報が出てきたのでこの原因が分かりました。
Y.A.M の 雑記帳: Android Drawable Mutations
つまるところ、Androidのレンダリング処理の特性の問題です。同一リソースから生成すると通常は共有されてしまうconstant stateを、個別に与えてやることで、別々のサイズを保有できるようになる、という理屈でした。

Ver. 2.6.6

Android 6.0でポップアップが正しく表示されない問題修正

Android 6.0より、ポップアップの座標計算が変更されたらしく、Androidでポップアップの表示位置がとんでもない場所に表示され、まともに操作できない状況になっていました。座標計算処理を修正し、正しい位置に表示されるようにしました。

Bluetooth非搭載機種でエラーとなる問題修正

Bluetoothが非搭載の機種において、最初の起動の際にBluetooth関連の設定を初期化するところでエラーとなり、起動できなくなっていましたので、その修正です。久々にエミュレータでデバッグを行ったところ、アプリの起動に失敗してしまったことで気付きました。