Probleem met src in <embed>

Status
Niet open voor verdere reacties.

KeesdeOude

Gebruiker
Lid geworden
29 mei 2008
Berichten
35
Getracht wordt een mp3 vanuit een programma te laten horen. Het programma bevat een
array met mapnaam, artist, genre en mp3's. Een willekeurige mp3 haal ik als volgt uit het
array:
Code:
  var Song=new String(titel[regel].substring(begin,einde))+'.mp3';
Dit is een object, dus:
Code:
  Song=Song.toString(); of: Song=eval(""+Song);
  tracktekst+=Song+"  "+<embed type='audio' src=Song autostart='false'><br>;
Hierna meer van deze regels, dan:
Code:
  document.all.trackweergave.innerhtml=tracktekst;
Op het scherm staan dan alle mp3's van de gekozen map (=[regel]) met de mp3's, gevolgd
door een leeg spelersymbool, geen geluid.
Als ik in src opneem: 'mijn.mp3', staat de speler er achter en kan deze worden gestart.
De parameter src ziet Song dus niet als string.
Kan iemand me vertellen wat ik fout doe? Of kan dit helemaal niet op deze manier?
KeesdeOude.
 
Laatst bewerkt door een moderator:
is dit niet gewoon een verkeerde string-maak:
PHP:
tracktekst+=Song+"  "+<embed type='audio' src=Song autostart='false'><br>;

maak er eens zoiets van?
PHP:
tracktekst+=Song+"  "+ "<embed type='audio' src=" + Song + " autostart='false'><br>";

:thumb:
 
anders..

Hoi,

Waaroum zou je een substring selectie doen als het een array is?
Als het 3e item van de array de titel bevat doe je toch: arraynaam[2]
 
is dit niet gewoon een verkeerde string-maak:
PHP:
tracktekst+=Song+"  "+<embed type='audio' src=Song autostart='false'><br>;

maak er eens zoiets van?
PHP:
tracktekst+=Song+"  "+ "<embed type='audio' src=" + Song + " autostart='false'><br>";

:thumb:
Sorry, Vegras, dit werkt (ook) niet. Ik heb meerdere manieren geprobeerd maar kreeg het niet aan de gang. alert(typeof(Song)) geeft wel als reactie: string, maar src trekt zich daar niets van aan! Maar toch bedankt voor het mee-denken.KeesdeOude
 
Hoi,

Waaroum zou je een substring selectie doen als het een array is?
Als het 3e item van de array de titel bevat doe je toch: arraynaam[2]
Wel, Hansle, er staat meer in het array. Ook de naam van een map, artiest of groep, genre, meerdere mp3's, enz. De namen van de mp3's haal ik er uit door te kijken naar de scheidingstekens, vandaar 'begin' en 'einde'.
Kees de Oude.
 
Er moeten wel qoutes bij src="..." anders werkt 't niet als er een spatie in de naam staat. :)
PHP:
var Song, begin, einde, tracktekst = '';

// begin lus
// begin = ? einde = ?
Song = titel[regel].substring(begin,einde) + '.mp3';
tracktekst += Song + ' <embed type="audio" src="' + Song + '" autostart="false"><br>';
// einde lus

document.getElementById('trackweergave').innerHTML = tracktekst;
Is de extensie wel .mp3 met kleine letters? Op een website zal .MP3 meestal niet werken.

Als het niet lukt moet je even een script in z'n geheel plaatsen, anders is het niet te zien waar het fout gaat. :)


Vr.Gr. Egel.
 
Er moeten wel qoutes bij src="..." anders werkt 't niet als er een spatie in de naam staat. :)
PHP:
var Song, begin, einde, tracktekst = '';

// begin lus
// begin = ? einde = ?
Song = titel[regel].substring(begin,einde) + '.mp3';
tracktekst += Song + ' <embed type="audio" src="' + Song + '" autostart="false"><br>';
// einde lus

document.getElementById('trackweergave').innerHTML = tracktekst;
Is de extensie wel .mp3 met kleine letters? Op een website zal .MP3 meestal niet werken.

Als het niet lukt moet je even een script in z'n geheel plaatsen, anders is het niet te zien waar het fout gaat. :)


Vr.Gr. Egel.

Beste Egel. Dat was een constructieve gedachte! Nu gebeurt het volgende: er verschijnt een QuickTime symbool, ongeveer 25 x 25 mm., met daarin een vraagteken. Met rechtsklikken zijn de instellingen te bewonderen, verder geen respons, geen geluid. Bij src="MySong.mp3" zie ik een qua formaat instelbare speler en kan ik de speler starten en pauseren, enz, uiteraard met geluid. Ik ben er nog niet, wel een stapje vooruit. Hoe verder? Erg bedankt. Kees deOude.
 
Even een script in z'n geheel plaatsen. :)

Met iets als:
PHP:
var titel = new Array(
 'song lala van artiest enz',
 'song a capela van artiest',
 '');
(10 liedjes of zo) en vooral begin en eind.

Ik vermoed dat er bij begin of eind iets fout gaat waardoor je net 1 spatie teveel krijgt oid. :)


Vr.Gr. Egel.
 
Beste Egel. Dat was een constructieve gedachte! Nu gebeurt het volgende: er verschijnt een QuickTime symbool, ongeveer 25 x 25 mm., met daarin een vraagteken. Met rechtsklikken zijn de instellingen te bewonderen, verder geen respons, geen geluid. Bij src="MySong.mp3" zie ik een qua formaat instelbare speler en kan ik de speler starten en pauseren, enz, uiteraard met geluid. Ik ben er nog niet, wel een stapje vooruit. Hoe verder? Erg bedankt. Kees deOude.

In de bijlage embed2.txt staat de bedoelde functie. Ik weet niet of ik het zo goed doe, ik ben nieuw en tamelijk onervaren in dit soort zaken. KeesdeOude
 

Bijlagen

Laatst bewerkt:
Je script gebruikt alleen bij het eerste liedje de mapnaam. Maar ik denk dat het aan map- of bestandsnamen ligt die net anders zijn, misschien underscores ( _ ) hebben ipv spaties. :)

Ik heb het wat herschreven, door de string met .split('|'); te knippen heb je alle liedjes in een array:
PHP:
var a = 'a|bc|def|g|h'.split('|');
// is hetzelfde als:
var a = new Array('a','bc','def','g','h');
Verder heb ik nog een textarea toegevoegd die de innerHTML van de div weergeeft, zo kun je zien wat er nog misgaat:
PHP:
<script type="text/javascript">

 var titel = new Array();
 var sp = '&nbsp; ';

 // voorbeeld:
 titel[0] = 'ABI FOQ EL SHAGARA (Abdel Halim Hafez)|arabisch|Ahdan El Haybayeb|El Hawa Hawaya|Gana El Hawa|Kady El Belag|Ya Khaly El Qalb|';

 function tracksVanTitels(regel) {
  var tracks = titel[regel].split('|');
  var MP3titel = tracks[0];
  var genre = tracks[1];
  var tracktekst = MP3titel + '<br><br>\r\n';
  var DirString = 'D:\\MP3\\' + MP3titel + '\\';

  for (var i = 2; i < tracks.length - 1; i++) {
   tracktekst += sp + (i - 1) + sp + tracks[i] + ' <embed type="audio" src="' + DirString + tracks[i] + '.mp3" autostart="false" height="15" width="120"><br>\r\n'; 
   };
 
  document.getElementById('tracksweergave').innerHTML = tracktekst;
  document.getElementById('tekst').value = tracktekst; // controle!
  };

</script>

<div id="tracksweergave"></div>
<textarea id="tekst" cols="80" rows="12" wrap="off"></textarea>

<script type="text/javascript">
 tracksVanTitels(0);
</script>
:)


Vr.Gr. Egel.
 
Je script gebruikt alleen bij het eerste liedje de mapnaam. Maar ik denk dat het aan map- of bestandsnamen ligt die net anders zijn, misschien underscores ( _ ) hebben ipv spaties. :)

Ik heb het wat herschreven, door de string met .split('|'); te knippen heb je alle liedjes in een array:
PHP:
var a = 'a|bc|def|g|h'.split('|');
// is hetzelfde als:
var a = new Array('a','bc','def','g','h');
Verder heb ik nog een textarea toegevoegd die de innerHTML van de div weergeeft, zo kun je zien wat er nog misgaat:
PHP:
<script type="text/javascript">

 var titel = new Array();
 var sp = '&nbsp; ';

 // voorbeeld:
 titel[0] = 'ABI FOQ EL SHAGARA (Abdel Halim Hafez)|arabisch|Ahdan El Haybayeb|El Hawa Hawaya|Gana El Hawa|Kady El Belag|Ya Khaly El Qalb|';

 function tracksVanTitels(regel) {
  var tracks = titel[regel].split('|');
  var MP3titel = tracks[0];
  var genre = tracks[1];
  var tracktekst = MP3titel + '<br><br>\r\n';
  var DirString = 'D:\\MP3\\' + MP3titel + '\\';

  for (var i = 2; i < tracks.length - 1; i++) {
   tracktekst += sp + (i - 1) + sp + tracks[i] + ' <embed type="audio" src="' + DirString + tracks[i] + '.mp3" autostart="false" height="15" width="120"><br>\r\n'; 
   };
 
  document.getElementById('tracksweergave').innerHTML = tracktekst;
  document.getElementById('tekst').value = tracktekst; // controle!
  };

</script>

<div id="tracksweergave"></div>
<textarea id="tekst" cols="80" rows="12" wrap="off"></textarea>

<script type="text/javascript">
 tracksVanTitels(0);
</script>
:)


Vr.Gr. Egel.
 
Waarde Egel. Even in het kort:
1 De mp3namen kloppen
2 Het (deel van het script) gaf inderdaad vooral het 1e liedje, het probleem is dat er geen speler verschijnt, dit leek me voldoende.
3 Je hebt het iets herschreven... Een geweldige verbetering! Ik had uiteraard wel eens iets over split gelezen in het door mij gebruikte handboek (Java Script Bible) maar de importantie niet gezien helaas. Ik besef nu dat het een knullig voorbeeld was. Maar ook KeesdeOude is nog niet te oud om iets te leren.
Maar... ik of we dwalen van het onderwerp af! In jouw laatste reactie lees ik niet of je wel of niet de mp3 ten gehore kunt brengen. Ik nog niet, maar er is hoop.
Omdat ik nieuw op Helpmij.nl ben en weinig op het web zit besloot ik onlangs deze hele site eens goed te bekijken en te lezen. Ik las iets over handleidingen, ingestuurd door leden en las iets over IrfanView, één van mijn favoerieten. O ja, dacht ik, die kan ook meer dan plaatjes manipuleren. Fluks IrfanView op mp3 gezet, WinAmp er af gehaald, mijn programma gedraaid en warempel! spelers na elke titel, alles afspeelbaar| Niet te geloven!
Destijds had ik een paar mp3's in dezelfde directory als het programma gezet, dit wijzigde ik zo dat het de mp3's op de D schijf kon vinden en ik weet nog nog niet hoe, maar geen spelers meer! Sinds dien heb ik van alles geprobeerd wat relevant leek, geen succes!
Op de grote verbetering door split na ben ik wat dat betreft nog niets opgeschoten.
De vraag bijft: heeft Egel spelers in dat stukje javescript gezien?
Groeten van KeesdeOude.
 
Probeer het eens hiermee: :)
PHP:
<script type="text/javascript">

 var titel = new Array();
 var mp3dir = 'D:/MP3';

 // voorbeeld:
 titel[0] = 'ABI FOQ EL SHAGARA (Abdel Halim Hafez)|arabisch|Ahdan El Haybayeb|El Hawa Hawaya|Gana El Hawa|Kady El Belag|Ya Khaly El Qalb|';

 function tracksVanTitels(regel) {
  var tracks = titel[regel].split('|');
  var MP3titel = tracks[0];
  var genre = tracks[1];
  var DirString = 'file:///' + mp3dir + '/' + MP3titel + '/';

  var songs = '', titles = '';
  for (var i = 2; i < tracks.length - 1; i++) {
   if (i > 2 ) {songs += '|'; titles += '|'};
   songs += DirString + tracks[i] + '.mp3'; 
   titles += tracks[i];
   };

  var tracktekst = '<b>' + MP3titel + '</b>(' + genre + ')<br>\r\n';
  tracktekst += '<object type="application/x-shockwave-flash" data="player_mp3_multi.swf" width="240" height="120">\r\n';
  tracktekst += '<param name="movie" value="player_mp3_multi.swf" />\r\n';
  tracktekst += '<param name="FlashVars" value="mp3=' + songs + '&title=' + titles + '" />\r\n';
  tracktekst += '</object>\r\n';
 
  document.getElementById('tracksweergave').innerHTML = tracktekst;
  document.getElementById('tekst').value = tracktekst; // controle!
  };

</script>

<div id="tracksweergave"></div>
<textarea id="tekst" cols="80" rows="12" wrap="off"></textarea>

<script type="text/javascript">
 tracksVanTitels(0);
</script>
De flashspeler plaats je dan in dezelfde map:
http://flash-mp3-player.net/medias/player_mp3_multi.swf
rechtklikken > opslaan als ...


Vr.Gr. Egel.
 
Probeer het eens hiermee: :)
PHP:
<script type="text/javascript">

 var titel = new Array();
 var mp3dir = 'D:/MP3';

 // voorbeeld:
 titel[0] = 'ABI FOQ EL SHAGARA (Abdel Halim Hafez)|arabisch|Ahdan El Haybayeb|El Hawa Hawaya|Gana El Hawa|Kady El Belag|Ya Khaly El Qalb|';

 function tracksVanTitels(regel) {
  var tracks = titel[regel].split('|');
  var MP3titel = tracks[0];
  var genre = tracks[1];
  var DirString = 'file:///' + mp3dir + '/' + MP3titel + '/';

  var songs = '', titles = '';
  for (var i = 2; i < tracks.length - 1; i++) {
   if (i > 2 ) {songs += '|'; titles += '|'};
   songs += DirString + tracks[i] + '.mp3'; 
   titles += tracks[i];
   };

  var tracktekst = '<b>' + MP3titel + '</b>(' + genre + ')<br>\r\n';
  tracktekst += '<object type="application/x-shockwave-flash" data="player_mp3_multi.swf" width="240" height="120">\r\n';
  tracktekst += '<param name="movie" value="player_mp3_multi.swf" />\r\n';
  tracktekst += '<param name="FlashVars" value="mp3=' + songs + '&title=' + titles + '" />\r\n';
  tracktekst += '</object>\r\n';
 
  document.getElementById('tracksweergave').innerHTML = tracktekst;
  document.getElementById('tekst').value = tracktekst; // controle!
  };

</script>

<div id="tracksweergave"></div>
<textarea id="tekst" cols="80" rows="12" wrap="off"></textarea>

<script type="text/javascript">
 tracksVanTitels(0);
</script>
De flashspeler plaats je dan in dezelfde map:
http://flash-mp3-player.net/medias/player_mp3_multi.swf
rechtklikken > opslaan als ...


Vr.Gr. Egel.
 
Iedereen, vooral Egel bedankt voor de moeite!

Helaas, Egel, ook dit werkt niet. Je hebt veel moeite gedaan, mee gedacht en van alles geprobeerd (ik ook uiteraard, het liet me niet los), nu moet ik toch constateren dat het niet mogelijk is!
Toevallig kwam ik een berichtje over Media Monkey tegen (in ComputerIdee), gedownload en getest. Het bleek net zoiets als iTunes te zijn, met allerlei mogelijkheden, het lijkt veel op mijn eigen programma behalve het uiterlijk. Ik blijf dat dan maar gebruiken.
Bedankt voor al jouw hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan