2012-11-12 26 views
5

Tôi hiện đang làm cho một trò chơi trong Javascript nhưng khi cố gắng để bắn, âm thanh chụp không khởi động lại. HTML của tôi trông như thế này:Làm thế nào để khởi động lại một âm thanh nhúng trong Javascript?

<embed id="playerShot" src="resources/sounds/ump45shot.mp3" hidden="true" autostart="false"loop="false" volume="20"> 

My Javascript chức năng là

function shoot() { 
document.getElementById("playerShot").Play(); 
} 

Có cách nào để khởi động lại âm thanh trước khi chơi nó một lần nữa?

+0

Cá nhân tôi giữ bản sao của phần tử đó trong bộ nhớ, sau đó thêm bản sao của nó vào tài liệu khi cần và xóa nó sau khi phát xong. Đó là những gì tôi làm với HTML5 'audio' phần tử và jQuery, không chắc chắn làm thế nào bạn muốn áp dụng được cho một' embed' với JS tinh khiết. –

Trả lời

0

tôi muốn khuyên bạn nên sử dụng các yếu tố <audio>, theo ý kiến ​​của tôi nó phù hợp hơn với nhu cầu của bạn hơn so với thẻ địa chỉ mạng. https://developer.mozilla.org/en-US/docs/HTML/Element/Audio

Để tua lại một thẻ <audio>: document.getElementById('iamanaudioelement').currentTime = 0

(mặt lưu ý: không phải tất cả các trình duyệt hỗ trợ mp3 <audio> yếu tố Nếu bạn có ý định cho người dùng Firefox để chơi trò chơi của bạn, bạn nên tính năng phát hiện xem một trình duyệt hỗ trợ đã hỗ trợ MP3. , ví dụ: Modernizr và tạo thẻ âm thanh ogg hoặc mp3 nếu thích hợp.)

1

Nếu bạn đang tạo trò chơi bằng JavaScript, tôi khuyên bạn nên chọn JavaScript to HTML để tải và thao tác tài nguyên của bạn, như âm thanh và đồ họa. Bạn có thể đọc bài viết này để bắt đầu với API Web âm thanh: http://www.html5rocks.com/en/tutorials/webaudio/intro/.

0

Đây có phải là những gì bạn đang tìm kiếm?

<button onclick="playSfx('resources/sounds/ump45shot.mp3');">PLAY</button> 

<!--Script--> 

<script> 
    function playSfx(filename){ 
    var snd = new Audio(filename); 
    snd.play(); 
} 

</script> 
Các vấn đề liên quan