TadaoYamaokaの日記

山岡忠夫 Home で公開しているプログラムの開発ネタを中心に書いていきます。

Android版ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップ 1.2.1

Android版ボーカル音程モニター(Vocal Pitch Monitor)をバージョンアップしました。

1.2.1
・録音した音声をGoogleドライブなどへ転送する機能を追加した
・低音方向の解析範囲をC1まで拡張した

play.google.com


複数の方から要望をもらっていた、共有機能を実装しました。
これが望まれていた方法か少し自信がないですが、
実装のしやすさもあって、とりあえず録音した音声を
Googleドライブなどにアップロードできるようにしました。

あと、解析範囲をC1まで広げてほしいという要望にも対応しました。
普通、F2以下の声は発生できないんだけど、
要望を上げている方は、弦楽器の練習とかで使っているのかな。
フレットのない弦楽器には有用なアプリだと思います。
ただし、低音にあまり最適化してないので、精度は悪いです。
機械学習のサンプルに加えれば調整できますが、
サンプル集める作業は結構大変なので、
今回は対応しませんでした。
そのうち対応するつもりです。


実装の話をすると、
ファイル共有は、FileProviderを使ってIntentで実装しました。
ファイルにMODE_WORLD_READABLE属性を付ければ、
FileProviderを使わずにファイルを直接IntentでACTION_SENDできましたが、
MODE_WORLD_READABLEはAPIレベル17から非推奨になっていました。
非推奨だけど使うことはできますが、メールには添付できないなど制限があるようです。

リファレンスに代わりにContentProviderを使えと書いてあったので、
ContentProviderを継承して独自に実装していましたが、
途中でFileProviderという便利なものがあることに気付きました。
これを使えば、独自に継承したクラスを作らなくてもファイル共有が実装できました。

Setting Up File Sharing | Android Developers