12

SoundPool クラスを使用して短い (20kb) ギャップのない ogg ファイルをループしようとしていますが、ハードウェアでのテスト中に一貫した結果を得ることができません。エミュレーターを使用すると常に完全に再生されますが、Nexus 1 または Samsumg Galaxy Tab 10.1 でテストすると、すべてのループ ポイントでポップ音またはクリック音が聞こえます。非常に奇妙なのは、アプリケーションが開始されると一貫していても、アプリを再起動するたびにクリックがわずかに異なり、まれに (タブレットではより頻繁に) ループが正しく再生されることです。

MediaPlayer を使用しても結果は良くありません。Androidでオーディオループのギャップレス再生を期待するのは不合理ですか? 確かに誰かが同様の機能を適切に機能させていますか? もしそうなら、それがどのように機能するかの例を見てみたいです。

ありがとう!

4

3 に答える 3

4

単一のファイルに対して正常に機能するハックを使用しました。

HACK_loopTimer = new Timer();
HACK_loopTask = new TimerTask() {               
    @Override public void run() {
        mMediaPlayer.seekTo(0);
    }
};
long waitingTime = mMediaPlayer.getDuration()-mHackLoopingPreview;
HACK_loopTimer.schedule(HACK_loopTask, waitingTime, waitingTime);

mHackLoopingPreview妥当な量に設定してください。私は100msを使用していますが、正常に動作しています。これは理想的とは言えず、醜い解決策であることに同意する必要がありますが、少なくとも機能は果たします。

于 2012-05-02T23:33:03.743 に答える