Wie kann ich mit JavaScript die Länge einer .mp3 Datei ermitteln?
Hallo!
Auf meiner Website wird Musik abgespielt und ich hätte gerne dass dann ein Timer dabei ist der Aussagt wie lange die Musik schon spielt. Also z. B. 5:24 / 7:00
Zurzeit sieht mein Code so aus:
function play1() {
var audio = new Audio('Music/001.mp3');
audio.play();
audio.addEventListener('ended', (event) => {
play2();
});
}
play2() ist dann einfach das nächste Lied.
Wie kann ich das machen?
3 Antworten
MrAmazing2
bestätigt
Von
Experte
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Technik
Die Gesamtlänge findest Du mit duration raus:
https://www.w3schools.com/tags/av_prop_duration.asp
Die aktuelle Position mit currentTime
Woher ich das weiß:Berufserfahrung – Entwicklung von Apps und Websites
const createBar = require("string-progressbar");
const { MessageEmbed } = require("discord.js");
const { LOCALE } = require("../util/EvobotUtil");
const i18n = require("i18n");
i18n.setLocale(LOCALE);
module.exports = {
name: "np",
description: i18n.__("nowplaying.description"),
execute(message) {
const queue = message.client.queue.get(message.guild.id);
if (!queue) return message.reply(i18n.__("nowplaying.errorNotQueue")).catch(console.error);
const song = queue.songs[0];
const seek = (queue.connection.dispatcher.streamTime - queue.connection.dispatcher.pausedTime) / 1000;
const left = song.duration - seek;
let nowPlaying = new MessageEmbed()
.setTitle(i18n.__("nowplaying.embedTitle"))
.setDescription(`${song.title}\n${song.url}`)
.setColor("#F8AA2A")
.setAuthor(message.client.user.username);
if (song.duration > 0) {
nowPlaying.addField(
"\u200b",
new Date(seek * 1000).toISOString().substr(11, 8) +
"[" +
createBar(song.duration == 0 ? seek : song.duration, seek, 20)[0] +
"]" +
(song.duration == 0 ? " ◉ LIVE" : new Date(song.duration * 1000).toISOString().substr(11, 8)),
false
);
nowPlaying.setFooter(
i18n.__mf("nowplaying.timeRemaining", { time: new Date(left * 1000).toISOString().substr(11, 8) })
);
}
return message.channel.send(nowPlaying);
}
};
//So hab ich das vllt kannst damit was anfangen
Ich finde das ziemlich kompliziert... Ist das nicht komplizierter als es sein müsste?
webhorst
28.05.2021, 14:20
@verreisterNutzer
var au = document.createElement('audio');
au.src = "https://bla.bla/myaudio.mp3";
au.addEventListener('loadedmetadata', function(){
var duration = au.duration;
alert("Länge: " + duration + " Sekunden");
},false);
Müsstest dir das eben dann noch in Minuten umrechnen
Nutzer, der sehr aktiv auf gutefrage ist
hier alle methoden die audio so liefert
https://www.w3schools.com/jsref/dom_obj_audio.asp
länge ist wohl duration und aktuelle zeit ist currentTime
Ja genau das meine ich doch hab den Command aber nd so schnell gefunden