2017-01-13 28 views
7

Chúng tôi gặp sự cố với ứng dụng kết hợp trình đọc âm thanh, sử dụng tệp m4a âm thanh khá lớn. Tóm lại, phải mất quá nhiều thời gian để bắt đầu phát lại (khi sử dụng tài nguyên âm thanh trực tuyến).Hành vi lạ của ứng dụng lai dựa trên CrossWalk khi phát âm thanh web m4a

Để minh họa cho vấn đề này, chúng tôi đã tạo một nguyên mẫu nhỏ hơn với cấu trúc sau:

Body:

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

Script:

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.

Khi chúng tôi xây dựng ứng dụng với Cordova 6.4.0 bằng cách sử dụng WebView, nó bắt đầu playb ack trong ~ 3.5s. Các hoạt động mạng trông như thế này:

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 

Khi chúng ta xây dựng các ứng dụng với Cordova 6.4.0 với crosswalk-webview Plugin 2.2.0, nó bắt đầu phát lại trong 18s lúc tốt nhất, nhưng đôi khi sự chậm trễ thậm chí còn quan trọng hơn - lên đến 45s. Có vẻ như nguyên nhân chính là sự khác biệt trong hoạt động mạng:

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 

... khi chỉ yêu cầu đầu tiên được phục vụ với 'bình thường' user-agent, tất cả những người tiếp theo được phục vụ với stagefright/1.2 (Linux;Android 5.0.1).

Tại sao sự khác biệt và cách chúng tôi có thể tránh điều này?

P.S. Đây là the folder với tất cả các apks và dữ liệu liên quan.

+0

Tạo một cái gì đó Lika a [Github] (https://github.com/) kho lưu trữ cho nguyên mẫu của bạn sẽ làm cho nó dễ dàng hơn nhiều để tái tạo vấn đề của bạn. – Phonolog

+0

@ Alex Tôi đoán bạn đã nêu ra một vấn đề trong dự án crosswalk và nó đã được phân loại là một vấn đề P2. Vì vậy, chúng tôi có thể phải đợi để sửa chữa từ đội crosswalk. Đã đăng nó vì lợi ích của người khác – Gandhi

+0

bạn không đơn độc .... [câu hỏi tương tự trên xda] (https://forum.xda-developers.com/android/help/stagefright-makes-multiple-http-t3390372) và thậm chí trên [github] (https://github.com/WhisperSystems/Signal-Android/issues/4636) – ymz

Trả lời

1

Nếu tìm thấy bất kỳ lỗi nào liên quan đến plugin crosswalk, bạn có thể gửi lỗi nếu chưa gửi https://crosswalk-project.org/jira/plugins/servlet/mobile#login/ Trang web dự án lối đi qua đường, thông thường họ thực hiện hành động và giải quyết. Nếu bạn đã giải quyết xong, vui lòng cập nhật câu trả lời tại đây.

CẬP NHẬT

tôi thấy bạn (có thể bạn) vấn đề: https://crosswalk-project.org/jira/plugins/servlet/mobile#issue/XWALK-7484

phát triển có cùng một câu hỏi theo dõi vấn đề này vào liên kết này .. ATB

Các vấn đề liên quan