Speelduur van een MP3.

Status
Niet open voor verdere reacties.

KeesdeOude

Gebruiker
Lid geworden
29 mei 2008
Berichten
35
Elke mp3 heeft een aantal tags met bijzonderheden omtrent de muziek, artist, genre, speelduur, enz. Er is ook een tag TLEN met een string die het aantal milliseconden aangeeft van de speelduur. Bijzonderheden hierover vond ik bij id3.org. Nu merkte ik dat de tag TLEN meestal ontbreekt bij mijn mp3's, toch geven de players de speelduur aan. Die wordt dus niet uit TLEN gelezen! Ik vraag me af hoe het dan wel kan? Berekenen uit filelengte en aantal (muziek)frames? Lijkt me ingewikkeld! www id3.org heeft daar niets over, ook vond ik geen mp3 forum. Weet iemand hier meer over? Bij voorbaat mijn dank!
 
Wat wil je nou precies weten?

Hoe een mediaspeler aan de speelduur komt?

Daarnaast vraag ik mij af hoe je in deze sectie terecht kwam.
Als je bovenstaande vraag wilt beantwoorden zorg ik dat je vraag in de juiste sectie komt :)
 
Wat wil je nou precies weten?

Hoe een mediaspeler aan de speelduur komt?
Inderdaad, ik wil weten "hoe een mediaspeler aan de speelduur komt" als dit niet in de tag TLEN staat. Ik hoopte dat iedereen dat zou begrijpen.
Daarnaast vraag ik mij af hoe je in deze sectie terecht kwam.
Uiteraard via 'Programmeren' en 'Javascript'. Meer specifiek: zie mijn voorgaande vraag over een ActiveXObject. Beide vragen hebben betrekking op een programma in html/javascript. Waar de vraag omtrent de speelduur wel zou moeten staan? Als u een beter forum weet, graag!
 
Laatst bewerkt door een moderator:
Ik denk dat je dit via JS wilt uitvinden?

Nou, media speler embed's doen dit wss door de bitrate op te vragen (in bv. kbps) en zo dus de lengte kunnen berekenen. MP3 header is altijd 1 grootte.

Zeg, (verzin maar wat) de header is 5kb, en je bestand is 1mb (--> 995kb). Stel de bitrate is 128kb/s, heb je 7,7nogwat seconde muziek. Ofzo. Toch?


Geen idee of dit waar is, of of dit wel kan. Maar het is een idee. Mischien helpt het.




:thumb:
 
met php en ajax?

PHP

PHP:
switch ($_GET['request']) 
{
case 'mp3length':

$path = 'path/to/your/mp3map/'.$_GET['song']; //song.mp3
$bytes = filesize($path);
$bits = $bytes * 8;
$krate = 64;
$brate = $krate * 1024;
$seconds = $bits / $brate;
$minutes = floor($seconds / 60);
$seconds -= $minutes * 60;
echo $minutes . ':' . round($seconds,0);

break;

}

En AJAX:

PHP:
var xmlHttp;

function getsong(song)
{ 

var mp3=song;

xmlHttpfaq=GetXmlHttpObject()
  
var url="application/controller/switch.php"
url=url+"?request=mp3length&song="+song
url=url+"&sid="+Math.random()

xmlHttp.onreadystatechange=stateChanged
xmlHttp.open("GET",url,true)
xmlHttp.send(null)

}	


function stateChanged() 
{ 
	
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{

var lengthofmp3= xmlHttp.responseText;
document.getElementById("divmp3length").innerHTML=lengthofmp3;

}

}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan