1

混合オーディオ ファイルの再生に使用する SoundPool[] があります。サウンドプールは問題なく一緒に再生され、非常に効率的です! 非常に簡単に:

    private SoundPool[] sound = new SoundPool[C.ROWS];
    // every sound is initizialized with a load()
    // and when asked...
public void play(int row, int variation) {
    if (mute[row]) return;
    if (variation != 0)
        sound[row].play(variation_scheme[row][variation-1], volume[row], volume[row], PRI, 0, 1f);
}

これは見せるだけです!:)すべてが非常にうまく機能し、実際には問題ではないため、他のコードは入れません。代わりに、私の質問は次のとおりです。

オーディオ スピーカーの代わりに (またはそれに加えて)、アプリケーションの出力全体をファイルにリダイレクトするにはどうすればよいですか? つまり、主な解決策が 2 つあります。2. または、アプリ (またはすべての電話) のすべてのオーディオ出力をファイルにリダイレクトするにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

0

オーディオを録音する方法を見つけた唯一の方法は、デュレーション(メディアプレーヤーを使用)、soundID、ミリ秒単位で再生するためのミリ秒タイムスタンプ、ボリューム、レート(必要な場合)など、プレスされているサウンドの各情報を記録することです。次に、後で使用するために、これらを (内部または外部の) テキスト ファイルに書き込みます。保存された情報をテキスト ファイルからデコードし、それをいくつかの配列またはハッシュマップに整理する再生システムを作成し、ハンドラーと postDelay を使用してサウンドと目的の時間を再生し、必要なデータをプラグインして、何らかの再生方法で再生します。配列またはハッシュマップからサウンドを再生します。

このようにして、サウンド シーケンスを再生するための独自のデータ ファイルを持つことができます。

于 2014-05-17T22:32:11.483 に答える