जावास्क्रिप्ट के साथ, मेरे पास एक ऐसा फ़ंक्शन है जो createElement("audio")
के साथ एक ऑडियो तत्व बनाता है, और appendChild()
का उपयोग किए बिना लूप में खेलना शुरू करता है, मेरा मतलब है कि इसे DOM में शामिल किए बिना। तत्व बनाया एक चर में रखा जाता है, यह कहा जाता है music1
करते हैं:मैं डोम को जोड़ने के बिना ठीक से एचटीएमएल 5 ऑडियो कैसे हटा सकता हूं?
music = document.createElement("audio");
music.addEventListener("loadeddata", function() {
music.play();
});
music.setAttribute("src", music_Source);
मैं करना चाहते हैं क्या, बदलने के लिए संगीत खेला जाता है, यदि संभव हो तो एक ही समारोह का उपयोग कर, और एक ही तत्व भंडारण है चर।
मैं क्या है कि इसके बाद के संस्करण कोड से पहले:
if(typeof(music) == "object") {
music.pause();
music = null;
}
लेकिन: अगर मैं music.pause()
निकालने के लिए, पहले संगीत चलता रहता है, और दूसरा जो मुझे लगता है कि बनाता है एक ही समय में भी खेल रहे हैं, शुरू होता है पहला संगीत दस्तावेज़ में/स्मृति में हमेशा कहीं होता है। इसके अलावा, music = null
बेकार लगता है। मैं jQuery का उपयोग नहीं करना चाहता।
क्या आपके पास पहले संगीत को सही ढंग से हटाने, तत्व को हटाने, या इसी तरह से कोई विचार है?
असल में, केनिस की टिप्पणी सही है, मैंने केवल "स्रोत" चर को संशोधित करने की कोशिश की है, न कि इसे "संगीत" चर (या न ही इसे शून्य पर सेट करना, न ही तत्व बनाना) को संशोधित करना और यह भी काम करना प्रतीत होता है। तो, रिकार्ड के लिए: प्रत्येक स्रोत यहाँ बदल रहा है के लिए समारोह है:
if(typeof(music) != "object") {
//audio element does not exist yet:
music = document.createElement("audio");
music.addEventListener("loadeddata", function() {
music.play();
});
}
music.setAttribute("src", music_Source);
आप पहले से ही अपने प्रश्न का उत्तर दिया है! ऑब्जेक्ट को हटाने से पहले 'music.pause()'। –
क्या कोई कारण है कि आप नया गीत शुरू करने के लिए तैयार होने पर 'src' विशेषता को बदलना नहीं चाहते हैं? –
@किनिस असल में, 'music.setAttribute ("src", music_Source); दूसरे संगीत के लिए नए संगीत_Source के साथ फिर से कॉल किया जाता है, इसलिए मुझे लगता है कि इसका मतलब है, मैं src विशेषता बदलता हूं। @ फ्रैंकिस एविला लेकिन मुझे सच में विश्वास नहीं है कि संगीत.pause() हटाने से पहले पिछले संगीत को किसी भी उचित तरीके से "हटाया" जा सकता है। या शायद मुझे कुछ याद आती है, या मैं खुद को पर्याप्त रूप से समझा नहीं सकता :) –