2017-12-26 5 views
0

Ich versuche die Audiodauer (mm: ss) eines Songs zu ermitteln, der auf meinem CDN gehostet wird. Die Audiodatei ist hier verlinkt: https://ucarecdn.com/6b1c0d8b-3145-4128-b7ff-ce5420fe154e/ (beachten Sie, dass das Einfügen dieser URL in Ihren Browser die Audiodatei direkt auf Ihren Computer lädt (~ 4 MB)).Dauer der Audiodatei von einer URL extrahieren

Ich konnte bereits die BPM extrahieren und jetzt möchte ich auch die Länge des Songs bestimmen. Suche erscheint online, dass alles was ich brauche sollte zu tun ist:

var song = "https://ucarecdn.com/6b1c0d8b-3145-4128-b7ff-ce5420fe154e/"; 
console.log(song.duration); 

Aber das zeigt undefined

ich dies auch versucht haben, aber erhalten NaN:

<audio id="myAudio" controls> 
    <source src="https://ucarecdn.com/6b1c0d8b-3145-4128-b7ff-ce5420fe154e/" type="audio"> 
</audio> 

<script> 
    function myFunction(e) { 
    e.preventDefault; 
    var x = document.getElementById("myAudio").duration; 
    console.log(x); 
    } 
</script> 

Antwort

1

Das Problem ist, Dauer Rückkehr NAN weil das Audioelement nicht geladen wurde

Sie brauchen 2 hier Dinge, die Ihr Problem + zu lösen, zuerst müssen Sie warten, bis die DOM-Elemente heruntergeladen + zweite müssen Sie für die Audio-Handler loadmetadata Ereignis hören, dann können Sie die Dauer

$(function(){ 
 
const ad = document.getElementById('ad'); 
 
ad.onloadedmetadata = function() { 
 
    // duration in seconds 
 
    alert(ad.duration); 
 
}; 
 
    
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<audio id="ad" src="https://ucarecdn.com/6b1c0d8b-3145-4128-b7ff-ce5420fe154e/" controls></audio>
Zugang

+0

Sie 'Du bist willkommen. –