2017-01-13 14 views
7

Oldukça büyük ses m4a dosyaları kullanan bir ses okuyucu karma uygulamasıyla ilgili sorunlarımız var. Kısacası, oynatmayı başlatmak çok uzun sürüyor (çevrimiçi ses kaynakları kullanırken).m4a web ses yürütülürken CrossWalk tabanlı hibrit uygulamanın garip davranışı

Gövde:

<audio src="..." controls="controls" preload="none"></audio> 
<button class="change-current-time">Play and change currentTime</button> 

Senaryo:

var audioTags = document.querySelectorAll('audio'); 
[].forEach.call(audioTags, function (item) { 
    item.addEventListener('play',  onPlayStateChange); 
    item.addEventListener('timeupdate', onPlayStateChange); 
    item.addEventListener('error',  onPlayStateChange); 
    item.addEventListener('pause',  onPauseReset); 
}); 

function onPlayStateChange(e) { 
    var id = e.target.parentNode.id; 
    if (count[id]) { 
     return; 
    } 
    if (e.type === 'play') { 
     count[id + 'start'] = +new Date(); 
    } else if (e.target.parentNode.querySelector('audio').currentTime > currentTimeOffset) { 
    var span = e.target.parentNode.querySelector('span'); 
    count[id] = 1; 
    if (span) { 
     span.innerText = e.type === 'error' ? 'Audio type or codec does not supported' : new Date() - count[id + 'start']; 
    } 
    } 
} 

There is the full example.

biz

sorunu göstermek için, aşağıdaki yapıya sahip daha küçük bir prototipi oluşturduk WebView kullanarak Cordova 6.4.0 ile uygulama oluşturmak, bu playb başlar ~ 3.5s içinde ack. ağ etkinliğini şuna benzer:

Cordova Crosswalk-webview eklentisi 2.2.0 ile 6.4.0 ile biz uygulama oluşturmak

GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=webview HTTP/1.1 206 29522945 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=webview HTTP/1.1 206 326657 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=webview HTTP/1.1 206 29163520 
, en iyi 18s oynatma başlar, fakat bazen gecikme bile daha önemli olduğunu - 45 sene kadar. sadece ilk istek 'normal' user-agent ile sunulduğunda
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 206 2 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 200 29522945 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 206 577690 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 200 29522945 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 206 577690 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 200 29522945 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 206 577690 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 200 29522945 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 206 577690 
GET /tmp/1916firstchapterscollection_09_various_64kb.m4a?app=crosswalk HTTP/1.1 206 7384995 

..., sonraki tüm olanları stagefright/1.2 (Linux;Android 5.0.1) ile servis edilir: ana nedeni ağ etkinliği farkıdır görünüyor.

Fark nasıl ve neden bundan nasıl kurtulabiliriz?

P.S. İşte tüm apks ve ilgili verilerle birlikte the folder. https://crosswalk-project.org/jira/plugins/servlet/mobile#login/ Crosswalk proje sitesi henüz göndermediğiniz takdirde bunu devam gönderebilirsiniz eklentisi yaya geçidi ile ilgili herhangi bir hata bulduysanız

+0

.. aynı soruyu bu bağlantıyı konuyu izlemesini oluşturma şey bir [Github] lika (prototipiniz için https://github.com/) deposu, sorununuzu çoğaltmanızı çok daha kolay hale getirir. – Phonolog

+0

@Alex Yaya geçidi projesinde zaten bir sorunla karşılaştığınızı ve bir P2 sorunu olarak tetiklendiğini tahmin ediyorum. Bu yüzden, yaya geçidi ekibinden düzeltmeyi beklemek zorunda kalabiliriz. Diğerleri – Gandhi

+0

'un yararına gönderdiniz, yalnız değilsiniz .... [xda'da benzer soru] (https://forum.xda-developers.com/android/help/stagefright-makes-multiple-http-t3390372) ve hatta [github] (https://github.com/WhisperSystems/Signal-Android/issues/4636) – ymz

cevap