Avatar billede h_thunbo Nybegynder
20. juni 2007 - 00:29 Der er 24 kommentarer og
1 løsning

vælge musik fra harddisk, på internettet

Hej Eksperter!

Det er måske lidt svært at se hvad det skal bruges til, men jeg kunne godt tænke mig en musikafspiller på min hjemmeside, hvor jeg selv kan vælge hvilket nummer på min harddisk jeg vil høre.
Jeg har fundet en musikafspiller hvori jeg kan kode den til at spille en sang fra harddisken, men jeg vil gerne ha' så jeg kan vælge andre. De ligger i den samme mappe.
Koden jeg har nu ser sån her ud:

<OBJECT ID="MediaPlayer" WIDTH=320 HEIGHT=5% name="MediaPlayer" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject">
<PARAM NAME="volume" VALUE="10">
<PARAM NAME="FileName" VALUE="C:\musikmappe\sang1.mp3">
<PARAM NAME="ShowControls" VALUE="1">
<PARAM name="DisplaySize" value="100%">
<EMBED TYPE="application/x-mplayer2" PLUGINSPAGE="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" SRC="C:\musikmappe\sang1.mp3" NAME="MediaPlayer" WIDTH="320px" HEIGHT="45px"></EMBED>
</OBJECT>
Avatar billede zurekk Nybegynder
20. juni 2007 - 01:20 #1
Er det også meningen at andre skal kunne hører din musik :)?
Avatar billede webudvikleren Nybegynder
20. juni 2007 - 02:00 #2
<!-- Liste -->
<a href="#" onclick="new Song('sang2.mp3');">Sang2.mp3</a>
<a href="#" onclick="new Song('sang3.mp3');">Sang3.mp3</a>
<a href="#" onclick="new Song('sang5.mp3');">Sang5.mp3</a>

<!-- Ændre -->
<PARAM NAME="FileName" VALUE="C:\musikmappe\sang1.mp3">

<!-- Til: -->
<PARAM id="musik" NAME="FileName" VALUE="C:\musikmappe\sang1.mp3">

<!-- Og tilføj funktionen: -->
<script type="text/javascript">
function Song(songname)
{
  document.getElementById('musik').value = songname;
}
</script>
Avatar billede h_thunbo Nybegynder
20. juni 2007 - 17:54 #3
zurekk -> Nej det er kun mig der kan høre musikken. Det er ikke til downloading. Så jeg håber ikke det kan være ulovligt?

webudvikleren -> Det må jeg prøve. Det ser meget rigtig ud.
Avatar billede h_thunbo Nybegynder
20. juni 2007 - 18:11 #4
hmm...

Jeg kan ikke rigtig på det til at virke? Den siger ingen fejl, der er bare ingen musik.

Skal jeg indsætte min egen afspiller under?
Avatar billede webudvikleren Nybegynder
20. juni 2007 - 18:32 #5
Prøv se hvad denne skriver, hvis du indsætter denne funktion:

<script type="text/javascript">
function Song(songname)
{
  alert(document.getElementById('musik').value);
  document.getElementById('musik').value = songname;
}
</script>

-- hvad udskriver alerten?
Avatar billede h_thunbo Nybegynder
20. juni 2007 - 20:11 #6
stadig ingen lyd.
Den skriver først C:\musikmappe\sang1.mp3 når jeg trykker på den første.
Anden gang siger den bare sang1.mp3

Jeg har følgende kode:
<html>
<head>
    <title>Nyt dokument</title>
</head>
<body>
<!-- Liste -->
<a href="#" onclick="new Song('sang2.mp3');">sang2.mp3</a>
<a href="#" onclick="new Song('sang3.mp3');">sang3.mp3</a>
<a href="#" onclick="new Song('sang5.mp3');">sang5.mp3</a>

<!-- Ændre -->
<PARAM NAME="FileName" VALUE="C:\musikmappe\sang1.mp3">

<!-- Til: -->
<PARAM id="musik" NAME="FileName" VALUE="C:\musikmappe\sang1.mp3">

<!-- Og tilføj funktionen: -->
<script type="text/javascript">
function Song(songname)
{
  document.getElementById('musik').value = songname;
}
</script>
<script type="text/javascript">
function Song(songname)
{
  alert(document.getElementById('musik').value);
  document.getElementById('musik').value = songname;
}
</script>
</body>
</html>
Avatar billede h_thunbo Nybegynder
20. juni 2007 - 20:18 #7
Ej okay. Jeg havde ikke fattet det der "ændre til" du havde lavet, som iøvrigt var ret smart... Koden ser selvfølgelig sån her ud:

<html>
<head>
    <title>Nyt dokument</title>
    <script type="text/javascript">
function Song(songname)
{
  alert(document.getElementById('musik').value);
  document.getElementById('musik').value = songname;
}
</script>
</head>
<body>
<!-- Liste -->
<a href="#" onclick="new Song('sang2.mp3');">sang2.mp3</a>
<a href="#" onclick="new Song('sang3.mp3');">sang3.mp3</a>
<a href="#" onclick="new Song('sang5.mp3');">sang5.mp3</a>


<!-- Og tilføj funktionen: -->
<script type="text/javascript">
function Song(songname)
{
  document.getElementById('musik').value = songname;
}
</script>

<OBJECT ID="MediaPlayer" WIDTH=320 HEIGHT=5% name="MediaPlayer" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject">
<PARAM NAME="volume" VALUE="10">
<PARAM id="musik" NAME="FileName" VALUE="C:\musikmappe\sang1.mp3">
<PARAM NAME="ShowControls" VALUE="1">
<PARAM name="DisplaySize" value="100%">
<EMBED TYPE="application/x-mplayer2" PLUGINSPAGE="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" SRC="C:\musikmappe\sang1.mp3" NAME="MediaPlayer" WIDTH="320px" HEIGHT="45px"></EMBED>
</OBJECT>

<script type="text/javascript">
function Song(songname)
{
  alert(document.getElementById('musik').value);
  document.getElementById('musik').value = songname;
}
</script>
</body>
</html>
Avatar billede h_thunbo Nybegynder
20. juni 2007 - 20:27 #8
Det her:
    <script type="text/javascript">
function Song(songname)
{
  alert(document.getElementById('musik').value);
  document.getElementById('musik').value = songname;
}
</script>
behøver selvfølgelig heller ikke stå to gange.
Jeg sad lige og redigerede lidt i det da jeg kopierede det over i min kommentar. Det vireker stadig ikke og alerten siger bare sang2.mp3 fx.
Avatar billede webudvikleren Nybegynder
21. juni 2007 - 03:18 #9
<script type="text/javascript">
function Song(songname)
{
  document.getElementById('musik').value = "C:\musikmappe\" + songname;
}
</script>

-- sådan! :-)
Avatar billede h_thunbo Nybegynder
21. juni 2007 - 08:57 #10
Der er stadig en fejl.
Er det meningen at der skal stå # i a href:
<a href="#" onclick="new Song('sang2.mp3');">sang2.mp3</a>

eller kan det være Value der er forkert her:
<PARAM id="musik" NAME="FileName" VALUE="C:\musikmappe\sang1.mp3">

Den siger bare der er en fejl på siden. og alerten siger bare det samme som før.
Avatar billede kbhadsten Nybegynder
21. juni 2007 - 15:51 #11
Hvordan var det lige du havde tænkt dig at læse filen fra harddisken.
Jeg går ud fra du har en webserver kørende derhjemme, og tilgår din webside på den.

Du skal sikre dig at den brugerprofil din webserver kører under, har rettigheder til at kigge i den folder du har angivet. *Måske skal webserveren også konfigureres til at læse data i den folder*. Uanset hvad, så virker det ikke som en særlig god ide, da lyd-dataene bliver streamet over HTTP trafik som arbejder over TCP, og derfor risikere du lag på lyden, da TCP er en forbindelsesorinteret protokol.

Bare en tanke!
Avatar billede h_thunbo Nybegynder
21. juni 2007 - 17:47 #12
Altså den her fungere fint... :
<OBJECT ID="MediaPlayer" WIDTH=320 HEIGHT=5% name="MediaPlayer" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject">
<PARAM NAME="volume" VALUE="10">
<PARAM id="musik" NAME="FileName" VALUE="C:\musikmappe\sang1.mp3">
<PARAM NAME="ShowControls" VALUE="1">
<PARAM name="DisplaySize" value="100%">
<EMBED TYPE="application/x-mplayer2" PLUGINSPAGE="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" SRC="C:\musikmappe\sang1.mp3" NAME="MediaPlayer" WIDTH="320px" HEIGHT="45px"></EMBED>
</OBJECT>

Det her: C:\musikmappe\sang1.mp3 er sangen på computeren.
Når man åbner siden kører sangen med det samme. Uden download. Jeg er ikke så meget inde i det, men det fungere altså ganske udemærket. Jeg vil bare gerne ha så jeg kan spille flere sange...
Det er ikke for andre end mig selv. Ingen andre skal kunne hente sangen, ingen andre kan logge ind dertil hvor jeg har min musikafspiller... og jeg kan kun høre sangen når jeg sidder ved min egen computer.
Avatar billede kbhadsten Nybegynder
21. juni 2007 - 18:31 #13
Ja, ok når du hører sangen på din egen computer er jo logisk nok. Så afvikler du jo siden direkte i egen browser. Det forklarer også hvorfor du kan læse direkte på din egen harddisk, og det fjerne evt. flaskehalse i båndbredde.

Den bedste løsning ville nok være javascript som forsøgt længere oppe.
Avatar billede h_thunbo Nybegynder
30. juni 2007 - 17:45 #14
Er den gået død? Den virker ikke endnu. Jeg kan ikke vælge sang.
Avatar billede kbhadsten Nybegynder
01. juli 2007 - 13:17 #15
Hej, jeg har prøvet lidt frem og tilbage på en Vista maskine. Dit script virker ikke rigtigt. Jeg har bemærket at den URL der er angivet i PLUGINSPAGE, ikke virker mere. Hvilken afspiller er det du vil have det til at virke under?
Avatar billede kbhadsten Nybegynder
02. juli 2007 - 08:49 #16
Hej igen.
En kollega på arbejde måtte lige forklare mig hvordan det .js virker. Jeg har testet nedenstående, og det virker (dog kun i IE)
----------------------------------------------------------------------------

<html>
<head>
    <title>Nyt dokument</title>
    <script type="text/javascript">
    function PlaySong(file) {   
        document.getElementById("MediaPlayer").filename = file;
    }
</script>
</head>
<body>
<OBJECT ID="MediaPlayer" WIDTH="320px" HEIGHT="20%" name="MediaPlayer" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject">
    <PARAM NAME="volume" VALUE="10">
    <PARAM NAME="ShowControls" VALUE="1">
    <PARAM name="DisplaySize" value="100%">
    <PARAM ID="CurrentlyPlaying" NAME="FILENAME" VALUE="">
</OBJECT>
<br>
<input type='button' onclick=PlaySong("[filename]") value='Play song 1'>
<input type='button' onclick=PlaySong("[filename]") value='Play song 2'>

</body>
</html>
Avatar billede kbhadsten Nybegynder
02. juli 2007 - 08:51 #17
og husk at angive filepath som URI

file:///c:/musikmappe/song1.mp3
Avatar billede kbhadsten Nybegynder
02. juli 2007 - 09:02 #18
eh, v1.1, nu med <SELECT>
-----------------------------------------------------------------------------

<select name='playlist' onchange="if (this.value != '') PlaySong(this.value);">
<option value="">-- Select song to play --</option>
<option value='file:///t:/kpb/song1.mp3'>Sang 1</option>
<option value='file:///t:/kpb/song2.mp3'>Sang 2</option>
</select>
Avatar billede h_thunbo Nybegynder
02. juli 2007 - 21:40 #19
Det er rigtig godt i IE, men kan det ikke komme til at virke i mozilla? Det ville være total nice.
Er der en måde man kan få den til at skifte til næste sang af sig selv når sangen er færdig?
Avatar billede kbhadsten Nybegynder
03. juli 2007 - 08:32 #20
Jeg har rodet lidt med det, i FF skal man bruge <EMBED> istedetfor <OBJECT>. Men det er generelt en meget dårlig løsning fordi afspilleren afhænger af hvilke plugins brugerne har installeret i deres browser.

Jeg har prøvet lidt frem og tilbage, og har i det mindste fået IE til at bruge den nyeste MediaPlayer der er installeret på computeren.

<object id='MediaPlayer' width=380 height=340
    classid='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'
    standby='Loading Microsoft® Windows® Media Player components...'
    type='application/x-oleobject'
    codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6 ,4,7,1112'>
  <PARAM NAME='url' VALUE=''>
  <PARAM NAME='autoStart' VALUE='true'>
  <PARAM NAME='showControls' VALUE='false'>
  <PARAM name='ShowStatusBar' value='true'>
  <PARAM NAME='Autorewind' VALUE='true'>
  <PARAM NAME='ShowDisplay' VALUE='false'>
  <PARAM NAME='stretchToFit' VALUE='false'>
  <EMBED SRC='' id='id2' WIDTH=380 HEIGHT=280 type='audio/mpeg' name='MediaPlayer' autostart=1 showcontrols=1 showstatusbar=1 autorewind=1 showdisplay=0></EMBED>
</OBJECT>
<br>
<input type='button' onclick=PlaySong("file:///c:/musikmappe/musik1.mp3") value='Play song 1'>
<input type='button' onclick=PlaySong("file:///c:/musikmappe/musik2.mp3") value='Play song 2'>
<br><br>
<select name='playlist' onchange="if (this.value != '') PlaySong(this.value);">
  <option value="">-- Select song to play --</option>
  <option value='file:///c:/musikmappe/musik1.mp3'>Musik 1</option>
</select>

Jeg vil mene det er meget bedre, hvis du vælger en flash-baseret afspiller.

Jeg fandt denne her, første hit på google.

http://musicplayer.sourceforge.net/

Prøv det istedetfor. Den anden løsning er bare ..... ikke go'
Avatar billede h_thunbo Nybegynder
03. juli 2007 - 22:24 #21
Jeg kan ikke få det til at virke med ff. Jeg tænkte at jeg jo bare kunne lave et browser tjek og så lave en <embed>, hvis det var ff. Men det er ikke bare at skrifte object til embed.

Men okay. Jeg kan gå med til at skulle bruge IE.

Er der en måde man kan få den til at tage den næste sang på? Evt selv bestemme en anden sang?
Den må også shufle fra starten af, og så bare med den ekstra funktion at man kan vælge en anden.

Det med flash afspillere er meget smart. Man skal bare uploade ens musik til ens server og det vil jeg helst ikke. Det skal bare blive på min computer.
Men hvis du kan finde en flash afspiller der kan hente fra harddisken istedet ville det være lige så godt!

ps. tak for tålmodigheden!
Avatar billede kbhadsten Nybegynder
04. juli 2007 - 07:50 #22
Hej igen

Du kan godt lave det browsertjek, men hos mig ser det ud som om man godt kan have <OBJECT> og <EMBED> liggende sammen, hver browser læser kun den del den selv forstår.

Til et evt. browsertjek, se da dette kode:
<script type="text/javascript">
var useragent = navigator.userAgent;
alert(useragent);
</script>

Jeg har ingen ide om hvorvidt man kan shuffle eller diverse andre ting med den web-Mediaplayer afspiller. Den information må du selv google, der kan jeg ikke hjælpe dig.

Du har så vidt jeg kan se ret i at den flahafspiller kræver data kommer fra en webserver. Det er måske en lille hage, men du kan jo bare installere en lokalwebserber IIS eller Apache (eller lign). og så hente musikken derigennem. Så kan dine data også forblive på din lokale harddisk.

Om der findes alternativer? Det gør der nok, men jeg kender dem ikke. Google er igen din ven.

Held og lykke med projektet.
Avatar billede h_thunbo Nybegynder
07. juli 2007 - 12:48 #23
JO tak.
Jeg må hellere afslutte den her, jeg kommer nok ikke tættere på.

Vil du sende et svar, så får du point.
Avatar billede h_thunbo Nybegynder
20. juli 2007 - 21:57 #24
Vil du ikke have point kbhadsten?
Avatar billede kbhadsten Nybegynder
24. juli 2007 - 10:12 #25
Jo, så lad gå da :D

Er lige kommet hjem fra Ferie! Derfor den lange svartid.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester