javascript - dragging audio files in specific order html5 -
i have 4 broken parts of music file. want drag , drop music files files play in give order. idea user has drag audio files in correct order. able drag , drop music file, dont understand how set source of src of dragged audio.
here code :
<script> $(document).ready(function(){ $("#gif").hide(); $("#play").click(function(){ $("#span1").hide(); $("#span2").hide(); $("#span3").hide(); $("#span4").hide(); $("#gif").show(); var 1 = document.getelementbyid("one"); var 2 = document.getelementbyid("two"); var 3 = document.getelementbyid("three"); var 4 = document.getelementbyid("four"); one.addeventlistener("ended", function () { two.play(); }); two.addeventlistener("ended", function () { three.play(); }); three.addeventlistener("ended", function () { four.play(); }); one.play(); }); }); </script> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <script> function allowdrop(ev) { ev.preventdefault(); } function drag(ev) { ev.datatransfer.setdata("text", ev.target.id); } function drop(ev) { ev.preventdefault(); var data = ev.datatransfer.getdata("text"); ev.target.appendchild(document.getelementbyid(data)); console.log(ev); } </script> </head> <body> <audio controls id="span1" class="bg-info" ondrop="drop(event)" ondragover="allowdrop(event)"> </audio> <audio controls id="span2" class="bg-info" ondrop="drop(event)" ondragover="allowdrop(event)"> </audio> <audio controls id="span3" class="bg-info" ondrop="drop(event)" ondragover="allowdrop(event)"> </audio> <audio controls id="span4" class="bg-info" ondrop="drop(event)" ondragover="allowdrop(event)"> </audio> <button id="play">play</button> <br> <audio draggable="true" ondragstart="drag(event)" id="one" controls> <source src="poetsone.mp3"type="audio/ogg"> </audio> <br> <audio draggable="true" ondragstart="drag(event)" id="two" controls> <source src="poetstwo.mp3" type="audio/ogg"> </audio> <br> <audio draggable="true" ondragstart="drag(event)" id="three" controls> <source src="poetsthree.mp3" type="audio/ogg"> </audio> <br> <audio draggable="true" ondragstart="drag(event)" id="four" controls> <source src="poetsfour.mp3" type="audio/ogg"></audio> <br> <input type="button" value="play again" onclick="window.location.reload()"> <img id="gif" alt="playing" src="sam.gif" /> </body> it looks this. ca drag , drop below audio tags top
in drop function, @mouser said, path of source element. data variable contains id of audio element, have go source element since there src attribute need. function be:
function drop(ev) { ev.preventdefault(); var data = ev.datatransfer.getdata("text"); ev.target.src = document.getelementbyid(data).getelementsbytagname("source")[0].src; } the bad thing if have multiple source elements (for crossbrowser compability), pass wrong source url since element position hardcoded. suggest take this answer

Comments
Post a Comment