12

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

MediaPlayerを使用しても結果は改善されません。アンドロイドのオーディオループのギャップレス再生を期待するのは無理でしょうか?確かに、誰かが同じような機能を正しく動作させていますか?もしそうなら、私はそれがどのように機能するかの例を見たいと思うでしょう。

ありがとうございます!

+0

私は同じボートに入っています.WAVファイルは、同じように悪い動作をします。完全なギャップレスループは不可能なようです。トラックの最初と最後の10サンプルをフェードイン/アウトしようとすると、ミリ秒の長時間の一時停止、クリックなしが聞こえますが、フェードは非常に聞こえます。o_O – Manuel

+3

あなたはいつでも、ビットの連続ストリームを使用するAudioTrackを使用することができます。 – user717572

+0

それは馬鹿に聞こえるでしょうが、ギャップレスでシームレスなオーディオ再生を期待するのは(明らかに)不合理です。 – SARose

答えて

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を使用しており、正常に動作しています。私はこれが理想的ではなく、少なくとも醜い解決策であることに同意する必要がありますが、少なくともそれはその仕事をします。

+1

それは動作しますが、アプリケーションがバックグラウンドのときにループに少しの隙間があります – farrukh

+1

例をもう少し拡張できますか?例えば、どこでstart()やprepare()を呼び出しますか? –

+0

これは私にとってはまったく機能しませんでした。たぶん、私は@Primož'c0dehunter'Kraljのような正しい場所に実装していなかったからです。 – SARose

0

これは警官のように聞こえるかもしれませんが、試してみることができる2つのことがあります。

  1. あなたのオーディオファイルは、(これは私のために働いていた)48kHzのサンプルレートで形式をOGGおよび48Kbit/sの作り

  2. あなたは(ちょうど@Beowulf Bjornsonの答えのような)2つのMediaPlayerのオブジェクトとを作成することができます約< = 100ms MediaPlayer#1が終了する直前にMediaPlayer#2を起動し、時間全体を交互に切り替えます。ここに来て

ホープの人々は私だけ完璧にこれを行うためのボックス道のそこにないことを驚かれることしてこれを理解しようとしている約3日間を無駄にしたので、私は言った何をしようとします。

1

私は他の解決策を見つけた:

afd = assetManager.openFd(nameSound); 

player.setDataSource(afd.getFileDescriptor(), 
        afd.getStartOffset(), afd.getLength() - 1000); 
afd.close(); 
player.prepare(); 
player.setLooping(true); 
player.start(); 

あなたが唯一の合計時間という少ない代わりに、期間1000(1ミリ秒)を定義する必要があります。私たちは、todo、problema resuelto !!!!

関連する問題