tôi là tạo ra một cây đàn piano trong trình duyệt sử dụng javascript. Để tôi chơi cùng một phím nhiều lần cùng một lúc, thay vì chỉ chơi đối tượng Audio, tôi sao chép và chơi bản sao, nếu không tôi sẽ phải chờ âm thanh kết thúc hoặc khởi động lại, mà tôi không muốn t muốn.nguồn âm thanh Cloning mà không cần phải tải về nó một lần nữa
tôi đã thực hiện một cái gì đó như thế này:
var audioSrc = new Audio('path/');
window.onkeypress = function(event) {
var currentAudioSrc = audioSrc.cloneNode();
currentAudioSrc.play();
}
Vấn đề là, tôi đã kiểm tra thanh tra chrome, và tôi nhận thấy rằng mỗi khi tôi sao chép đối tượng, trình duyệt tải về nó một lần nữa
tôi đã kiểm tra một số người muốn đạt được những điều tương tự, và nhận thấy rằng hầu hết trong số họ có cùng một vấn đề mà tôi làm, họ redownload tập tin. Ví dụ duy nhất tôi thấy có thể phát cùng một nguồn âm thanh nhiều lần cùng một lúc là SoundJs http://www.createjs.com/SoundJS
Tôi đã thử kiểm tra nguồn có thể nhưng không thể tìm ra cách thực hiện. Bất kỳ ý tưởng?
Vâng tôi có thể thấy làm thế nào mà sẽ rất khó để theo dõi nếu bạn không quen với các kiến trúc SoundJS. WebAudioLoader._sendComplete giải mã tệp đã nạp vào một AudioBuffer sau đó được chuyển thành _result, được xử lý trong AbstractPlugin._handlePreloadComplete bằng cách lưu nó trong hàm băm _audioSources (WebAudioPlugin mở rộng AbstractPlugin). AudioBuffer được lưu trữ này sau đó được truyền cho mỗi WebAudioSoundInstance mới và được sử dụng để tạo các nút âm thanh. Ý tưởng giống như câu trả lời được chấp nhận, lưu trữ bộ đệm âm thanh và sử dụng nó để tạo các nút âm thanh mới. – OJay