こんにちはfkmです。
電池にやさしくない方法ではありますが、別スレッドでThread.sleep(1)を呼びつつ
時間計測 - 再生をやる方法はどうでしょうか?
2013/1/9 actbemu <kim...@shokei.ac.jp>:
> actbemuです。はじめて書き込みます。
>
> Windows用に作った、メトロノームソフト(http://www1.vecceed.ne.jp/~bemu/va/metrodown.htm)を、Androidタブレットでも動作させたく、目下勉強中です。いろいろやっていて、以下の壁に突き当たってしまいましたのでポストします。
>
> メトロノームは定期的な割込みでクリック音を出すということで、
> http://techbooster.jpn.org/andriod/application/934/
> を参考にさせていただいて、音を出すところはSoundPoollのplayメソッドで鳴らすように考えました。(音の長さは0.1秒以下)
>
> 上記参考ページのストップウォッチアプリのコードを打ち込み、実機で動作確認したあと、ストップウォッチのラップタイムを書き換えるところで、クリック音を鳴らすようにしてみました。
>
> 実際、実機で動作させてみましたが、音の鳴る間隔がとても均一とはいえない状況でした。
> 割込み周期を100msecから、500msecに間隔を開けても均一ではなく、とても音楽家の耳には耐えられないだろうほどのばらつき(ちょっと大げさですが)でした。
>
> もっと正確な時を刻むメトロノームができないかと考えていますが、そもそも無理な話なのでしょうか?もし解決方法があれば教えていただければと思います。(C++は未経験なので、Javaの範囲で何とかなれば嬉しいです)
>
> 宜しくお願いします。
後藤 浩昭(GORRY)です。
Androidでは「音楽演奏のリズム源」として使えるほどの高精度な
タイマー割り込み機能はありませんし、ポーリングでタイマーを
見張るような作りも基本ご法度です。 。。
AudioTrackを使って「メトロノーム音をストリーミング発声する」のが
適切な方法かと思います。たとえばBPM120なら「毎分120回のクリックを
発するような音声データストリームを少しずつ生成しながらAudioTrackへ
出力する」ことになります。
In message <37966657-8874-4b50-a0b6-6a5c51...@googlegroups.com>
"[android-group-japan: 21537] 正確なメトロノームを作るには?"
"actbemu <kim...@shokei.ac.jp>" wrote:
> actbemuです。はじめて書き込みます。
>
> Windows用に作った、メトロノームソフト(http://www1.vecceed.ne.jp/~bemu/va/metrodown.htm)を、Androidタブレットでも動作させたく、目下勉強中です。いろいろやっていて、以下の壁に突き当たってしまいましたのでポストします。
>
> メトロノームは定期的な割込みでクリック音を出すということで、
> http://techbooster.jpn.org/andriod/application/934/
> を参考にさせていただいて、音を出すところはSoundPoollのplayメソッドで鳴らすように考えました。(音の長さは0.1秒以下)
>
> 上記参考ページのストップウォッチアプリのコードを打ち込み、実機で動作確認したあと、ストップウォッチのラップタイムを書き換えるところで、クリック音を鳴らすようにしてみました。
>
> 実際、実機で動作させてみましたが、音の鳴る間隔がとても均一とはいえない状況でした。
> 割込み周期を100msecから、500msecに間隔を開けても均一ではなく、とても音楽家の耳には耐えられないだろうほどのばらつき(ちょっと大げさですが)でした。
>
> もっと正確な時を刻むメトロノームができないかと考えていますが、そもそも無理な話なのでしょうか?もし解決方法があれば教えていただければと思います。(C++は未経験なので、Javaの範囲で何とかなれば嬉しいです)
>
> 宜しくお願いします。
>
> --