2010-12-03 20 views
7

Aynı anda oynamak için birkaç ses almaya çalışıyorum; Şu anda SoundPool'un paylaşılan bir örneğini kullanıyorum. Hiçbir gecikme olmadan aynı anda çalınacak 1, 2 veya 3 ses istiyorum.SoundPool'u Kullanarak Ses Nasıl Senkronize Edilir

SoundPool.play çağrılırken (...) X kez ardı ardına sesler, sanıldığı gibi sırayla oynatılır. Bunu başarmak için uygun olan şey, aynı anda çalınacak tüm sesleri hazırlayıp sonra teker teker oynayabilir mi?

Sudo Kodu: size yardımcı olabilecek i seferde bir ses için ses havuzu yapılması

SoundPool _soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0); 

_soundPool.load(_context, soundId1, 1); 
_soundPool.load(_context, soundId2, 1); 
_soundPool.load(_context, soundId3, 1); 

_soundPool.play(soundId1, vol, vol, 1, 0, 1f); 
_soundPool.play(soundId2, vol, vol, 1, 0, 1f); 
_soundPool.play(soundId3, vol, vol, 1, 0, 1f); 
+1

ilgili: http://stackoverflow.com/q/4350212/116249 – Patrick

+0

@Patrick, ben dişli bir yaklaşım denedik ve ilk başta ben işe yaradı düşünce veya yeterince zaman sizi en azından yakın sadece iki konu var. ama aynı fikri alıp, aynı şeyi yapan 4 iplikçik demek için ölçeklendirdiğinizde, en ufak bir gecikmeyle tekrar geri dönersiniz. belki de bir sonraki adım sesleri karıştırmaktır ... gerçekten bu kadar ileri gitmek istemedim ama bu noktada pek çok seçenek göremiyorum. – YetAnotherDeveloper

+1

Sanırım ses karıştırma en iyi yaklaşımdır. Bir diğer telefonda James'in dediği gibi sadece bir emülatörde değil, bir telefonda denedin mi? Eğer miks olarak çalmak istediğiniz sesleri biliyorsanız, uygulamalarınızın yaşam döngüsünün başlangıcında ayarlayabilirsiniz, bu şekilde sesleri çalmak istediğinizde karıştırmak zorunda kalmazsınız. akar. – Patrick

cevap

İlgili konular