2016-03-20 23 views
1

arasındaki küçük duraklama ~ 30 saniye ses parçasını birden çok kez döngülemeye çalışıyorum.Dönen MediaPlayer

mAnimalMediaPlayer = MediaPlayer.create(mContext, fish.getSound()); 

Sonra çağırır:

mAnimalMediaPlayer.setLooping(true); 
mAnimalMediaPlayer.start(); 

bir oynat düğmesi tıklandığında Burada, sesleri oynatmak için bir MediaPlayer kullanıyorum onun yarattığı koddur. Parça çevrildiğinde, parça biti ve yeni döngü başlangıcı arasında küçük ancak fark edilir bir duraklama vardır. Kullanmakta olduğum ses dosyasının gerçek bir duraklama içermediği konusunda olumluyum.

İşte süredir kadar olmuştur bir android hata raporu: https://code.google.com/p/android/issues/detail?id=18756

I (örneğin yerine .mp3 ait .ogg dosyaları kullanma gibi) birkaç geçici çözümler denedim ama sorun devam.

Yeniden oynatmayı birçok kez sorunsuz şekilde kullanmamı sağlayacak olası bir geçici çözüm arıyorum.

+0

Bu konuda her şeyi yapmaya istekliyseniz, ses kodunu raw pcm'ye dönüştürmek ve bunu AudioTrack akış moduna dönüştürmek için MediaCodec'i kullanmayı düşünün. Bu önemsiz olmayan bir miktar koddur, ancak size işlenen ses üzerinde tam kontrol sağlar. –

+0

Olası çoğaltılabilir [Gapless ses döngüsünü şu ana kadar Android'de başardı] (http://stackoverflow.com/questions/26274182/cant-able-to-achieve-gapless-audio-looping-so-far-on- android) –

cevap

0

Çok dikkat çekici bir duraklama var. Bununla birlikte, 25 numaralı bir emülatör seviyesinde deneyler yaparak keşfettim ki eğer biri iki özdeş oyuncu hazırlarsa ve diğeri bittiğinde birbiri ardına sırayla başlatırsa o zaman aradaki fark daha da zorlaşır.