Toon posts:

[js] file.mp3.length?

Pagina: 1
Acties:

Verwijderd

Topicstarter
hallo,

ik speel mp3´s af met een <object>
ik moet de lengte van een mp3 te weten krijgen,
of wanneer het nummer klaar is, zodat ik het volgende nummer kan starten.

ik had het hier al eens gezien http://www.jscentral.com/iamp/

maar ik krijg die er niet uit geriped.
wie kan mij hiermee helpen?

of kan ik op een andere manier allemaal nummer achter elkaar af laten spelen?

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

http://www.jscentral.com/iamp/amp.js

Zoek daar eens door op selectionEnd ;)

note b.t.w. dat dit hele grapje *niets* doet op firefox ;)

[ Voor 29% gewijzigd door SchizoDuckie op 01-04-2005 14:49 ]

Stop uploading passwords to Github!


Verwijderd

Topicstarter
SchizoDuckie schreef op vrijdag 01 april 2005 @ 14:49:Zoek daar eens door op selectionEnd ;)
had ik ook gevonden, maar ik kreeg die niet aan de praat.

maar bij nader onderzoek ligt het aan dit:
code:
1
2
3
4
5
6
7
<script for="jsaudio" event="OpenComplete()" Language="JavaScript">
        <!--
        if (document.all){
            loaded();
        }
    //-->
</script>

en dan krijg ik wel de lengte in seconden.
dus dan laat ik gewoon een settimeout meelopen die aangeeft wanneer het stopt.
dat is tenzijn er nog iemand met een beter idee komt :*)
note b.t.w. dat dit hele grapje *niets* doet op firefox ;)
idd, ook wel fijn dat ze dat ff erbij zeggen :)

Verwijderd

Je zou - lijkt me - hiervoor ook het HTML+TIME audio element in combinatie met de onend event handler kunnen gebruiken.

HTML+TIME is IE-only, maar dat is dit script zo te zien ook.

  • simon
  • Registratie: Maart 2002
  • Laatst online: 09:22
Als ik jou was zou ik voor een flash oplossing kiezen als je met audio werkt. Is het meteen cross-browser compatible.

|>


Verwijderd

Flash lijkt mij ook handiger, maar gezien uitingen van Dexus op een ander forum heb ik het vermoeden dat hij het heel graag met JS wil doen.

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 01 april 2005 @ 20:08:
Je zou - lijkt me - hiervoor ook het HTML+TIME audio element in combinatie met de onend event handler kunnen gebruiken.

HTML+TIME is IE-only, maar dat is dit script zo te zien ook.
zou je daar wat meer informatie over kunnen geven?
Verwijderd schreef op vrijdag 01 april 2005 @ 20:15:
Flash lijkt mij ook handiger, maar gezien uitingen van Dexus op een ander forum heb ik het vermoeden dat hij het heel graag met JS wil doen.
:*) idd, ik ben al best ver, en het is te laat om nog over te stappen op flash.

Verwijderd

Feitelijk doet dit stukje code al wat je vraagt ...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>

<xml:namespace ns="urn:schemas-microsoft-com:time" prefix="t"/>
<?import namespace="t" implementation="#default#time2">

</head>
<body>

<t:audio src="bestand.mp3" onend="alert('klaar')"/>

</body>
</html>


Meer info over HTML+TIME vind je op MSDN:

http://msdn.microsoft.com...reference/time2_entry.asp

Het stuk over seeking is - denk ik - ook wel een aanrader als je een muziekspeler wilt maken.

  • Johnny
  • Registratie: December 2001
  • Laatst online: 24-04 11:10

Johnny

ondergewaardeerde internetguru

Zo kan het, maar dit werkt alleen in de mediaBar van Internet Explorer 6:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div style="behavior: url(#default#mediaBar);" id="divMedia" onplaystatechange="mediaDuration(divMedia.currentItem)"></div>

<a href="#" onclick="divMedia.playURL('D:\BigBangSound_2.wav', 'audio/wav');">big bang</a>

<a href="#" onclick="divMedia.playURL('D:\pn03_3_20.mpg.mpeg', 'video/mpeg')">video</a>

<div id="mediaInfo"></div>

<script type="text/javascript">

function mediaDuration(mediaItem)
    {
    //alert(mediaItem.duration);
    if(mediaItem.playState == 3)
        {
        document.getElementById('mediaInfo').innerHTML = "length: " + mediaItem.duration;
        }
    }

</script>

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Verwijderd

Hier heb je nog wat functies van HTML+TIME ...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<html>
<head>

<xml:namespace ns="urn:schemas-microsoft-com:time" prefix="t"/>
<?import namespace="t" implementation="#default#time2">

<script type="text/javascript">

function gaNaar(seconden)
{
  if(!muziek.currTimeState.isActive){
  muziek.beginElement();
  }

  if(seconden < muziek.mediaDur){
  muziek.seekSegmentTime(seconden);
  } else {
  alert('Muziekbestand duurt slechts ' + muziek.mediaDur + ' seconden');
  } 
}

</script>

</head>
<body>

<t:audio id="muziek" src="bestand.asx" loop="false" />

<button onclick="muziek.beginElement()">Ga naar begin</button>
<button onclick="gaNaar(10)">Ga naar 5 seconden vanaf het begin</button>
<button onclick="gaNaar(20)">Ga naar 20 seconden vanaf het begin</button>
<hr>
<button onclick="muziek.pauseElement();herstart.disabled=false;">Pauzeer</button>
<button id="herstart" onclick="muziek.resumeElement();this.disabled=true;" disabled>Herstart</button>
<button onclick="muziek.endElement()">Stop</button>

</body>
</html>


Omdat MP3 niet seekable is, zul je het moeten opnemen in een ASX bestand om de functie gaNaar() te laten werken.

Zo'n ASX bestand ziet er zo uit:

code:
1
2
3
4
5
6
7
8
9
<ASX version="3.0">
<TITLE>Blaat</TITLE>
    <Entry>
    <TITLE>Blaat</TITLE>
    <AUTHOR>Blaat</AUTHOR>
    <COPYRIGHT>Blaat</COPYRIGHT>
        <Ref href="bestand.mp3" />
    </Entry>
</ASX>

Verwijderd

Topicstarter
k, bedankt. ik ga het eens bekijken. :9~

je hoort het wel als ik nog problemen krijg :P

edit:
dit is echt zwaar ideaal, je kan hier echt gewoon alles mee. _/-\o_
weet niet hoe het komt maar die gaNaar() functie die werkt ook op mp3's

[ Voor 49% gewijzigd door Verwijderd op 02-04-2005 01:30 ]


Verwijderd

Je hebt gelijk, MP3 blijkt wel degelijk seekable te zijn. Had ik zelf natuurlijk ook wel even mogen testen. :D

Verwijderd

Topicstarter
ja, eigenlijk wel handig dus.

het enigste nadeel dat ik tot nu toe heb gevonden is dat ik die radio zenders niet aan de praat krijg (is ook asx)
als dat lukt kan ik ook meteen dat <object> wegooien.

Verwijderd

Topicstarter
ik kick mijn topic even omhoog omdat ik weer tegen een probleem aanloop.

sommige mp3 bestanden worden niet afgespeelt maar je wordt meteen doorgestuurt naar het volgende bestand.
denk dat het een soort codec probleem is, maar hoe kan ik deze bestanden toch afspelen?

heb het geprobeert met asx, maar daarmee krijg ik zelfs normaalwerkende bestanden niet aan de praat :X

moet ik een andere speler gebruiken? of een een soort wisselscript tussen 2 spelers (als de ene niet werkt wordt het afgespeelt met de andere.)

iemand een oplossing hiervoor?
Pagina: 1