2015-06-19 16 views
8

Mobil cihazlarla boşluksuz bir döngü elde edemiyorum. Bu şimdiye kadar yaptığım budur:Mobil tarayıcı ile boşluksuz ses döngüsünü nasıl yapabilirim?

https://github.com/Hivenfour/SeamlessLoop

HTML5 ses

  • bir boşluk oluşturur.

    Cordova'nın medya eklentisi bir boşluk oluşturur.

WebAudio

Yukarıdaki tüm mp3 ve ogg ile test edilmiştir.

DÜZENLEME:

SoundJS en cordova eklentisi böylece çalışmıyor bozuldu ve;

https://github.com/CreateJS/SoundJS/issues/170

+1

İkinci bir kopyasını önceden yükleyebilir, 1'i oynatabilir, pozisyonu izleyebilir ve ilk bitmeden 2. ~ 200ms. Gecikme üzerinde biraz değişiklik yapmak gerekebilir, ya da belki de bir şekilde bir kıyaslamadan hesaplayabiliriz ... – dandavis

+0

Bu korkuyorum ve çapraz solma tek olası çözüm gibi görünüyor. Önerileriniz, tüm platformlar ve cihazlar için gecikme aynı olmadığında sorun yaşıyor. Çapraz geçiş belirli seslerde iyidir, ancak diğerlerinde gerçekten kötüdür. – unska

+0

Evet, muhtemelen gecikme/gecikmeyi sessiz bir parça ile ölçebilirsiniz, ancak haklısınız, mükemmel olmayacak. Hiçbir şey ya da sıcak bir telefondan mümkün olabilir ya da daha iyi olabilir ... aynı zamanda CORS ve API ile kuyruğu yüklemek ve son duyulabilir içeriği bulmak için etrafta çalışmaya devam eden sessizlik sorunu da var. – dandavis

cevap

3

HTML5 ile HTML5 kullanıyorsanız, öznitelik özniteliğini kullanın.

<audio controls loop> 
    <source src="horse.ogg" type="audio/ogg"> 
    <source src="horse.mp3" type="audio/mpeg"> 
Your browser does not support the audio element. 
</audio> 

O ses dosyası ile kontrol boşluğu yaratmaz, ses dosyasının en sonunda boşluğu vardır.

here adlı belgeyi test edebilir, sadece loop niteliği ekleyebilir ve sayfayı çalıştırabilirsiniz. JavaScript İşte

ile

İşte

myAudio = new Audio('someSound.ogg'); 
myAudio.addEventListener('ended', function() { 
    this.currentTime = 0; 
    this.play(); 
}, false); 
myAudio.play(); 

JavaScript biraz boşluk yaratacak, sen döngü değil ses bittiğinde ama ne zaman oynayarak bunun üstesinden gelebilir da javascript

kullanarak bir alternatiftir ses bitmek üzere. İşte kod.

İstediğiniz budur.

myAudio = new Audio('http://unska.com/audio/pinknoise.ogg'); 
myAudio.ontimeupdate= function(i) { 
    if((this.currentTime/this.duration)>0.9){ 
    this.currentTime = 0; 
    this.play(); 
    } 
}; 
myAudio.play(); 

Here Demo olduğunu.

+0

Ciddi misin? HTML sesleri, aradaki en kötü boşluğu yaratıyor http://unska.com/audio/htmlaudio.html Javascript sürümü kötü bir boşluk yaratıyor Ayrıca, http://unska.com/audio/javascriptaudio.html – unska

+0

Ayrıca, boşluksuz bir oynatma döngüsünün nasıl yapıldığını göstermek isterseniz, kendiliğinden olmayan bir ses dosyası kullanın, başlangıçta ve sonunda sessizlikle bir at sesi değil. – unska

+0

@unska, bahsettiğiniz araçların çoğunu HTML5 seslerini uygula .. – Pogrindis

-1

SoundJS deneyin. Bir cordova plugin içerir.

+0

Zaten onların eklentisinin çalışmadığını onlara bildirdim: https : //github.com/CreateJS/SoundJS/issues/170 – unska

İlgili konular