Medoly Ver. 2.4.0

2015-10-23 Ver. 2.4.0
– 同期歌詞の長押しによるシーク機能追加
– 出力デバイスのレイテンシ設定追加
– 出力デバイスのスピーカー/ヘッドセット廃止
– ボタンの長押しリピート追加

同期歌詞の長押しによるシーク機能追加

これはユーザ様からの要望です。
同期歌詞を表示している時に、表示タブ上で歌詞を長押しすると、歌詞のテキストが再生される時間に曲をシークするようにしました。
これは同期歌詞のみで、非同期歌詞は非対象です。何故ならば、非同期歌詞は厳密な歌詞位置を取得することができないためです。
なお、歌詞以外の位置を長押しすると、従来同様に長押しアクションが実行されます(設定画面で切り替え)。設定で無効化することもできます。

出力デバイスのレイテンシ設定追加


以前追加した「出力デバイス」ダイアログに、レイテンシの設定を追加しました。レイテンシとは、Android内部で再生処理が行われてから、実際に音声がスピーカーやイヤホンから出力されるまでの遅延のことです。
この値を設定すると、同期歌詞の表示タイミングが調整されます(今のところは、同期歌詞だけです)。出力先を切り替えると自動的に適用されます。
これは、Bluetoothの出力先を切り替えた際に 歌詞のタイミングがズレてしまうのが以前から気になっていたため、今回追加してみました。なお、これに伴い従来設定画面に存在していた固定オフセット値(表示誤差)の設定は廃止しています。
レイテンシには、共通レイテンシと各出力デバイス固有のレイテンシを設定できます。実際のレイテンシは、双方の合計値になります。レイテンシの値は、デバイスやAndroidのバージョンによって異なります。Androidは総じて、iPhoneと比べてこの値が大きいです。

参考: スマホやタブレットの「オーディオレイテンシー」性能ランキングと自分でも可能な測定方法 – GIGAZINE

最近のNEXUSだと50ms以下になるようですが、遅い機種だと数百msにもなります。この値はユーザ自身で調整いただくしかありません。また、プログラム上の遅延もあるため、どこかに参考値として書かれている機種別レイテンシの値をそのまま設定しても、歌詞のタイミングが綺麗に調整されないかもしれません。

また、上記の値はスピーカー等から出力される場合の話で、Bluetooth出力の場合は更に遅延が発生します。また、同じBluetooth接続でも、コーデックの違いにより遅延が異なるようです。一応、参考値を画面上に記述していますが、あくまでも目安と考えてください。実際はこれよりも大きな値になる場合が多いようです。

出力デバイスのスピーカー/ヘッドセット廃止

以前のバージョンには、上記の出力デバイスダイアログに、スピーカー出力固定と、イヤホン出力固定の設定がありましたが、これらを廃止しました。理由はAndroid 5.0以降で使えないからです。また、これらを選択した状態は、音楽を流す上で不自然な状態であり、あまり推奨される状態ではなかったため、思い切って廃止してしまいました。
ご利用頂いていた方には申し訳ありません。

ボタンの長押しリピート追加

表示タブ上のボタンを長押しした際、ボタンのタップがリピートされるようにしました。ちょっとした機能改善です。