2011-08-16 5 views
8

मैं सिर्फ एचटीएमएल 5 ऑडियो फ़ंक्शन का उपयोग करके कई ऑडियो फ़ाइलों को चलाने के लिए चाहता हूं। प्रत्येक खेल के अंत में, "समाप्त" घटना अगले ऑडियो को लोड करने के लिए आग लगती है। लेकिन सफारी 5.1 में डेस्कटॉप (मैक पर) के लिए, मैंने पाया कि "एंडेड" कार्यक्रम केवल पहले गेम के अंत में निकाल दिया गया था। दूसरे ऑडियो को लोड करने और चलाने के बाद, "समाप्त" घटना तब भी आग नहीं आई जब ऑडियो प्ले समाप्त हो गया (मैंने इसे "टाइमअपडेट" ईवेंट द्वारा ट्रैक किया)। यहां तक ​​कि जब मैंने मैन्युअल रूप से किसी भी अन्य ऑडियो फाइलों को बजाया, तो "समाप्त" घटना फिर से आग नहीं आई। लेकिन क्रोम और मोबाइल सफारी में, यह समस्या मौजूद नहीं है और ऑडियो प्लेयर पहले ऑडियो से लगातार ऑडियो तक खेल सकता है। क्या यह मैक ओएस एक्स के लिए सफारी 5.1 की बग है? (मैंने विंडोज़ में इसका परीक्षण नहीं किया)मैक डेस्कटॉप संस्करण के लिए सफारी: एचटीएमएल 5 ऑडियो "एंडेड" घटना समस्या को आग नहीं देती

वर्तमान में, मैं केवल "टाइमअपडेट" ईवेंट का उपयोग यह जांचने के लिए कर सकता हूं कि नाटक समाप्त हो गया है या नहीं।

+0

मैं आज रात उसी सटीक बग में भाग गया। दुख की बात है अभी तक कोई फिक्स नहीं। पोस्ट करने का शुक्रिया। – shanebo

उत्तर

1

हाँ यह एक कष्टप्रद बग है। आप प्रत्येक फ़ाइल के लिए ऑडियो तत्व की आईडी को बदलकर इस पर काम कर सकते हैं। एक विचार प्राप्त करने के लिए यहां कुछ नमूना कोड दिए गए हैं:

<div id="audioDiv"> 
<audio id="audio0" src=""> 
    <h1>Your browser does not support the audio tag.</h1> 
</audio> 
</div> 

<script> 
var audioCounter = 0; 

function next() { 
audioCounter++; 
document.getElementById('audioDiv').innerHTML = '<audio id="audio' + audioCounter + '" src="file.mp3"></audio>'; 
document.getElementById('audio' + audioCounter).addEventListener('ended', next, false); 
document.getElementById('audio' + audioCounter).play(); 
} 

</script> 
संबंधित मुद्दे