Medoly Ver. 2.8.0, 2.8.1

Ver. 2.8.0

2016-08-22 Ver.2.8.0
– プラグイン通信データ変更に伴う修正

– 検索画面のレイアウト変更
– 文字列検索でスペース区切りをAND検索に変更
– 数値キーから再生番号を指定する昨日追加
– Bluetoothレイテンシの初期値を0に変更
– 歌詞の文字サイズ初期値及び上限を変更
– 起動時にレジュームされない問題修正
– SDカード書き込み権限でエラーが発生する問題修正
– その他修正

複数の値のタグに対応

メディアのタグは、一つのタグに複数の値を持つ場合があります。本バージョンで複数の値を持つタグに対応しました。この変更のため、内部的なデータ構造を大幅に見直しています。
対応とは、プロパティ情報への複数の値の表示、プラグインへのデータ送信等です。検索については、Android標準のデータベースを利用しているため、現状では残念ながら対応不可能です。
またこの変更に伴い、設定画面の[昨日]カテゴリに、以下の2項目が追加されています。

[プロパティの分割]
特定の文字列で分割し、プロパティを複数の値として扱います。対象の文字は「;」、「/」、「,」、「&」、改行の5種類です。

[プロパティの結合]
複数のプロパティを特定の文字列で結合します。対象の文字は分割と同じです。

「プロパティの分割」と「プロパティの結合」を両方してした場合は、値を分割した後に結合が行われます。

プラグイン通信データ変更に伴う修正

複数の値のタグに対応した事に伴い、プラグインとの通信周りを大幅に見直しました。そのため、本バージョンより前にリリースされたバージョンのプラグインは使用する事ができなくなります。

検索画面のレイアウト変更

検索画面のレイアウトを変更し、検索ボタンを左側に移動させました。 

何故このような変更を加えたのかというと、リストに表示されるスクロールのつまみとの競合対策です。検索画面の内容が長くなると、画面の右側に素早くスクロールするための「つまみ」アイコンが表示されます。画面右端のタップは、このつまみの操作が優先されてしまうため、画面右端にあるボタンが押しにくくなるという問題がありました。
最近、使用する端末のOSをAndroid 6.0に変更したところ、つまみに反応するタップ範囲が拡大されたためか、右端ボタンが完全に押せなくなってしまいました。そのため、ボタンを全部左側に寄せるように変更しました。
従来の操作に慣れていた方には申し訳ありませんが、よろしくお願いします。

文字列検索でスペース区切りをAND検索に変更

検索画面のテキスト検索フォームにおいて、スペースで区切りがあるとAND検索となるようにしました(従来はただの部分一致検索でした)。

数値キーから再生番号を指定する昨日追加

物理キーボードを接続し、キーボードから数値を入力してEnterを押すと、対応する再生キュー番号のメディアを再生する機能を追加しました。入力は、すべての画面で有効です。
入力時、タイトル部分に入力文字が表示されます。Escを押すか、2秒経過すると元の表示に戻ります。

タイトルに表示される番号

Bluetoothレイテンシの初期値を0に変更

Medolyでは、Bluetooth機器で再生する場合にレイテンシを設定することで、メディア再生と歌詞の表示のズレを補正することができます。従来、このレイテンシの値は、220msが初期値にになっていました。この値は、SBCコーデックにおけるレイテンシの値に合わせてあります。
ところが最近、端末のOSをAndroid 6.0に変更したところ、内部で自動的にレイテンシが補正されている様子で、レイテンシを設定すると再生と歌詞の表示が逆にズレてしまう事象が発生しました。そのため、レイテンシの初期値を0に変更しました。

歌詞の文字サイズ初期値及び上限を変更

歌詞の文字サイズの初期値を24sp、最大値を50spに変更しました。タブレットで表示させることも想定した場合、従来の初期値と上限は少し小さいように感じたためです。

起動時にレジュームされない問題修正

起動時に再生位置が元に戻らない場合がある問題を 修正しました。

SDカード書き込み権限でエラーが発生する問題修正

SDカードの書き込み権限がエラーとなる場合があったため、権限取得の処理を一部変更しました。

その他修正

その他諸々のエラー等を修正しました。

Ver.2.8.1

2016-09-25 Ver. 2.8.1
– 端末によってループが正しく実行されない問題修正
– 通知の背景を修正

端末によってループが正しく実行されない問題修正

ループが正しく動作しない場合がある問題を修正しました。これは、とあるループ条件が成立しない場合に発生し、端末によって条件が成立しない場合があることを確認しました。そのため、条件を外してループが動作するようにしました。

通知の背景を修正 

通知背景が白くなってしまい、文字が読めなくなる問題を修正しました。
公開の少し前にSDKのバージョンアップをしたのですが、それが影響してしまったようです。
ちなみに、新しいAndroidは基本的に背景が白色なので、それに合わせた方が良いのでしょうが、その辺は今後のバージョンで対応します。

Medoly Ver. 2.8.0, 2.8.1, 2.8.2

Ver. 2.8.0

2016-08-22 Ver.2.8.0
– プラグイン通信データ変更に伴う修正

– 検索画面のレイアウト変更
– 文字列検索でスペース区切りをAND検索に変更
– 数値キーから再生番号を指定する昨日追加
– Bluetoothレイテンシの初期値を0に変更
– 歌詞の文字サイズ初期値及び上限を変更
– 起動時にレジュームされない問題修正
– SDカード書き込み権限でエラーが発生する問題修正
– その他修正

複数の値のタグに対応

メディアのタグは、一つのタグに複数の値を持つ場合があります。本バージョンで複数の値を持つタグに対応しました。この変更のため、内部的なデータ構造を大幅に見直しています。
対応とは、プロパティ情報への複数の値の表示、プラグインへのデータ送信等です。検索については、Android標準のデータベースを利用しているため、現状では残念ながら対応不可能です。
またこの変更に伴い、設定画面の[機能]カテゴリに、以下の2項目が追加されています。

[プロパティの分割]
特定の文字列で分割し、プロパティを複数の値として扱います。対象の文字は「;」、「/」、「,」、「&」、改行の5種類です。

[プロパティの結合]
複数のプロパティを特定の文字列で結合します。対象の文字は分割と同じです。

「プロパティの分割」と「プロパティの結合」を両方してした場合は、値を分割した後に結合が行われます。

プラグイン通信データ変更に伴う修正

複数の値のタグに対応した事に伴い、プラグインとの通信周りを大幅に見直しました。そのため、本バージョンより前にリリースされたバージョンのプラグインは使用する事ができなくなります。

検索画面のレイアウト変更

検索画面のレイアウトを変更し、検索ボタンを左側に移動させました。 

何故このような変更を加えたのかというと、リストに表示されるスクロールのつまみとの競合対策です。検索画面の内容が長くなると、画面の右側に素早くスクロールするための「つまみ」アイコンが表示されます。画面右端のタップは、このつまみの操作が優先されてしまうため、画面右端にあるボタンが押しにくくなるという問題がありました。
最近、使用する端末のOSをAndroid 6.0に変更したところ、つまみに反応するタップ範囲が拡大されたためか、右端ボタンが完全に押せなくなってしまいました。そのため、ボタンを全部左側に寄せるように変更しました。
従来の操作に慣れていた方には申し訳ありませんが、よろしくお願いします。

文字列検索でスペース区切りをAND検索に変更

検索画面のテキスト検索フォームにおいて、スペースで区切りがあるとAND検索となるようにしました(従来はただの部分一致検索でした)。

数値キーから再生番号を指定する昨日追加

物理キーボードを接続し、キーボードから数値を入力してEnterを押すと、対応する再生キュー番号のメディアを再生する機能を追加しました。入力は、すべての画面で有効です。
入力時、タイトル部分に入力文字が表示されます。Escを押すか、2秒経過すると元の表示に戻ります。

タイトルに表示される番号

Bluetoothレイテンシの初期値を0に変更

Medolyでは、Bluetooth機器で再生する場合にレイテンシを設定することで、メディア再生と歌詞の表示のズレを補正することができます。従来、このレイテンシの値は、220msが初期値にになっていました。この値は、SBCコーデックにおけるレイテンシの値に合わせてあります。
ところが最近、端末のOSをAndroid 6.0に変更したところ、内部で自動的にレイテンシが補正されている様子で、レイテンシを設定すると再生と歌詞の表示が逆にズレてしまう事象が発生しました。そのため、レイテンシの初期値を0に変更しました。

歌詞の文字サイズ初期値及び上限を変更

歌詞の文字サイズの初期値を24sp、最大値を50spに変更しました。タブレットで表示させることも想定した場合、従来の初期値と上限は少し小さいように感じたためです。

起動時にレジュームされない問題修正

起動時に再生位置が元に戻らない場合がある問題を 修正しました。

SDカード書き込み権限でエラーが発生する問題修正

SDカードの書き込み権限がエラーとなる場合があったため、権限取得の処理を一部変更しました。

その他修正

その他諸々のエラー等を修正しました。

Ver.2.8.1

2016-09-25 Ver. 2.8.1
– 端末によってループが正しく実行されない問題修正
– 通知の背景を修正

端末によってループが正しく実行されない問題修正

ループが正しく動作しない場合がある問題を修正しました。これは、とあるループ条件が成立しない場合に発生し、端末によって条件が成立しない場合があることを確認しました。そのため、条件を外してループが動作するようにしました。

通知の背景を修正 

通知背景が白くなってしまい、文字が読めなくなる問題を修正しました。
公開の少し前にSDKのバージョンアップをしたのですが、それが影響してしまったようです。
ちなみに、新しいAndroidは基本的に背景が白色なので、それに合わせた方が良いのでしょうが、その辺は今後のバージョンで対応します。

[追加] Ver.2.8.2

頻繁な修正で申し訳ありません…。

2016-09-27 Ver. 2.8.2
– 新規インストール時に各種権限を取得するように変更
– Android 4.4において、設定画面で落ちる問題修正
– 一部設定の変更で落ちる問題修正

新規インストール時に各種権限を取得するように変更

実は、Ver.2.8.0 のリリースにおいて、ビルドターゲットのSDKバージョンをうっかり変更してしまったのですが、その影響でAndroid 6.0以降において新しく追加された権限の取得処理を、新たに追加しなくてはいけなくなりました。
これは、いくつかの権限についてユーザの承認を得るというもので、起動時に権限を要求するダイアログが表示されるようになります。ちなみに、既にインストール済の状態でバージョンアップされた方はそのまま利用できるのですが、アプリを新規にインストールすると権限がクリアされてしまうため、権限が必要になります。権限の承認が拒否されると、そのままプログラムを終了します。
具体的な権限は、外部ストレージへの読み書きと、電話の状態へのアクセスの2つです。外部ストレージはメディアファイルの読み込みや、プレイリストファイルの書き出し等に必要となるため、本アプリには絶対に必要な権限です。電話の状態へのアクセスは、電話がかかってきた時に再生を停止する機能に使用するので範囲は限定的なのですが、別々に作るのが面倒くさいので、起動時に一括で要求しています。
ちなみに、 最初はSDKバージョンを元に戻そうと思ったのですが、一度新しいバージョンにしてアプリを登録してしまうと、ダウングレードはできないようで…。迂闊にバージョン番号なんて弄るものではないな、と思い知りました。まぁやってしまったものは仕方ない、という事で、Android 6.0から追加された新しい権限取得の処理を追加しました。
ちなみに、Android 6.0未満の機種には影響ありません。

Android 4.4において、設定画面で落ちる問題修正

Android 4.4(もしくは、それ以下)において、設定画面で落ちる問題が発生していたため、修正しました。
これは、複数選択リストの MultiSelectListPreference において、初期値
 ( defaultValue )を指定していなかったため、画面構築時にInflateException が発生してクラッシュするというものです。Android 5.0以降は問題ないようです。ダミーの空の初期値を設定して対応しています。

一部設定の変更で落ちる問題修正

これは、設定変更時に変更をプレイヤーに通知する処理が入ってる一部設定項目で問題が起こっていました。プレイヤーにIntentで変更を通知する際に、パッケージ名を指定していないと、「Service Intent must be explicit」というエラーと共にアプリが落ちるという事象です。
ちなみにこれは、SDKバージョンを不用意に変更してしまった影響です…。