2

25ミリ秒ごとに再生される可能性のある1つまたは複数のサウンドを必要とするアプリを作成しています。(1分あたり300ビート、1ビートあたり8回の「再生」が発生する可能性があります)

最初はSoundPoolを使用してこれを実現しました。私は3つのスレッドを持っています。1つはSurfaceViewアニメーションの更新、1つはSystem.nanoTime()を使用した時刻の更新、もう1つはSoundpoolを使用したサウンド(mp3)の再生です。

これは機能しますが、WiFi再スキャンやGCなどのバックグラウンドプロセスが実行されるたびに、あちこちでビートをスキップし始めるため、多くのプロセッサパワーを使用しているようです。これは許容できません。

別の解決策を探しています。ミキシングとJETエンジンについても見てきました。

JETエンジンは、MIDIのみを使用するため、解決策のようには見えません。私のアプリには高品質のサウンド(実際の楽器からの録音)が必要です。(MIDIが高品質ではないという点で間違っている場合は訂正してください)

Androidでは、最初に生のサウンドを取得し(多くのメモリを消費し)、サウンドの間に「沈黙」を作成する必要があるため、ミキシングは非常に複雑に見えます。私のアプリはユーザーによって可変速度(bpm)が制御されるため、これが最も洗練されたソリューションであるかどうかはわかりません。

この分野の経験者がいらっしゃいましたら、アドバイスをいただければ幸いです。

ありがとうございました

4

0 に答える 0