2016-08-25 3 views
1

私はMediaPlayer、ExoPlayer、SoundPoolを試しました。長さ15秒のオーディオファイルをループするときに、それらのすべてにギャップがありました。解決策やライブラリはありますか?gaplessオーディオループ用のライブラリはありますか?

+0

あなたは(真の)このmediaPlayer.setLoopingを試してみました。 ?? –

+0

もちろん。しかし、2つの演劇の間には短いギャップがある。私はgaplessルーピングが必要です。 –

+0

試すhttp://stackoverflow.com/a/13410499/5545429 –

答えて

0

Exoplayer2の新しいリリースでは、id3ヘッダーからすべての情報を読み取ってギャップレスオーディオをサポートしています。 すべてのトラックを含むConcatenatingMediaSourceを作成する必要があります。ヘッダーに空白情報が含まれている場合は、プレーヤー自身が自動的に結合します。

Exoplayer2デモ使用:MediaSourcesのループを管理するためにLoopingMediaSourceもあります

String[] uriStrings = new String[]{ 
     Environment.getExternalStorageDirectory()+"/Music/gapless/temp1.mp3", 
     Environment.getExternalStorageDirectory()+"/Music/gapless/temp2.mp3" 
}; 
uris = new Uri[uriStrings.length]; 
for (int i = 0; i < uriStrings.length; i++) { 
    uris[i] = Uri.parse(uriStrings[i]); 
} 

MediaSource[] mediaSources = new MediaSource[uris.length]; 
for (int i = 0; i < uris.length; i++) { 
    mediaSources[i] = buildMediaSource(uris[i], extensions[i]); 
} 
MediaSource mediaSource = new ConcatenatingMediaSource(mediaSources); 

player.prepare(mediaSource, !shouldRestorePosition); 

を。 ツリー内のすべてのメディアソースを組み合わせることができます。

唯一の問題は、準備時にプレイヤーに与えたMediaSourcesの構造が静的であることです。

関連する問題