2012-02-23 53 views
6

Tôi đã điều sau đây:Làm thế nào để phát âm thanh trong JavaScript

<audio id="clickdown-wav" src="ClickDown.wav" preload="auto"></audio> 

và sau đó trong JavaScript của tôi, tôi có:

var ClickDown = $('#clickdown-wav')[0]; 

$(document).delegate('a','click',function() { 
    ClickDown.play(); 
}); 

Vấn đề là nó không quá linh hoạt (trên iPad) khi tôi nhấn các thẻ neo. Có một độ trễ đáng chú ý giữa thời gian tôi nhấn thẻ neo và tệp wav phát.

Hỏi: Có giải pháp chỉ mã nguồn để phát âm thanh từ JavaScript không? Clickdown.wav chỉ là 1k.

Trả lời

2

Trên iOS, không có tải trước. Điều này được thực hiện bởi Apple với mục đích, để người dùng không phải sử dụng băng thông không cần thiết.

+3

Luôn là điều gì đó phải không? –

+0

Giải pháp thay thế sẽ là kích hoạt tải() trên một sự kiện của người dùng (nhấp, cuộn, v.v.). –

+0

Có thể, nhưng cách diễn đạt của @ cf_PhillipSenn dường như ngụ ý * mọi sự kiện ràng buộc 'nhấp chuột', không chỉ là sự kiện đầu tiên. – msanford

1

Bạn có thể thử đặt "nút" vô hình trên ứng dụng web của mình, nhấp chuột của bạn nhận được tương tác với người dùng đầu tiên. Sau đó, tương tác sound.play(); sẽ hoạt động. Nhìn vào đây thread.

1

bạn cần phải sử dụng sự kiện chạm không nhấp vào sự kiện, chuyển nhấp chuột của bạn thành "chạm vào" và độ trễ sẽ biến mất

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