Verzoek om hulp met script

  • Hallo allemaal.


    Ik maak als hobby websites voor vrienden en vrienden van vrienden. De basis lukt me meestal wel, maar zo nu en dan krijg ik een verzoek waarmee ik niet zo goed uit de voeten kom. Daarom hoop ik hier te vinden/leren hoe het wel zou kunnen. Alle hulp is welkom !


    Mij is gevraagd om een website te maken voor iemand die meditatie/mindful oefeningen maakt als hobby. Dus zelf muziek maken, en er soms oefeningen doorheen praten. Hij zorgt zelf voor de content, mijn taak is om dat allemaal tot een 'technisch' geheel te maken.


    Zijn verzoek waar ik nu mee zit, is, om wanneer je op een bepaalde pagina van de website komt, er willekeurig een mp3 uit de collectie zelfgemaakte meditaties geladen/afgespeeld wordt (dus elke keer een andere wanneer je de pagina opent/refresht). En wanneer de oefening/mp3 is afgelopen zou er wederom een (willekeurige) nieuwe geladen/afgespeeld moeten worden, enzovoort. Dus ook steeds een andere volgorde.


    Wat ik tot nu toe heb, is:


    <script type="text/javascript">
    var numberOfSongs = 6
    var sound = new Array(numberOfSongs+1)
    sound[0]= "http://www.te_bepalen_url.nl/oefeningen/0.mp3"
    sound[1]= "http://www.te_bepalen_url.nl/oefeningen/1.mp3"
    sound[2]= "http://www.te_bepalen_url.nl/oefeningen/2.mp3"
    sound[3]= "http://www.te_bepalen_url.nl/oefeningen/3.mp3"
    sound[4]= "http://www.te_bepalen_url.nl/oefeningen/4.mp3"
    sound[5]= "http://www.te_bepalen_url.nl/oefeningen/5.mp3"


    function randomNumber(){
    var randomLooper = -1
    while (randomLooper < 0 || randomLooper > numberOfSongs || isNaN(randomLooper)){ randomLooper = parseInt(Math.random()*(numberOfSongs+1))
    }
    return randomLooper
    }
    var randomsub = randomNumber()
    var soundFile = sound[randomsub]
    document.write ('<EMBED src= "' + soundFile + '" hidden=true type="audio/mpeg" autostart=true loop=true>')
    </script>


    Op de één of andere manier werkt het niet goed. Ik hoor graag als iemand mij kan zeggen waarom het niet werkt en hoe het beter zou kunnen.


    Daarnaast komen er regelmatig nieuwe oefeningen bij, en zou ik elke keer het script moeten aanpassen (6.mp3, 7.mp3, etc). Uiteindelijk wordt het dan ook onoverzichtelijk ("welke oefening gaat er ook alweer schuil achter 45.mp3?"). Is er een manier om een script te leren om zelf een willekeurige mp3 uit de map oefeningen te kiezen? ?(


    Bedankt alvast voor jullie hulp en input!

  • Je zou het via PHP kunnen doen.


    PHP
    <?php
    $oefeningen= glob('oefeningen/*.mp3'); // Alle MP3 bestanden uit de map in een array
    shuffle($oefeningen); // Gooi ze door elkaar zodat ze 'random' zijn.
    echo "<embed src= '".$oefeningen[0]."' hidden='true' type='audio/mpeg' autostart='true' loop='true'>"; // En voeg de eerste oefeningen van de array met random oefeningen toe
    ?>

    Je kan dan alles in de map 'oefeningen' zetten, en deze worden dan gelijk aan de website toegevoegd.
    Je kan ze hiermee ook duidelijkere namen geven, wat je probleem ook oplost met "Wat zit er achter oefening 45.mp3"


    Verder zou je de embed nog kunnen vervangen met de HTML5 tag 'audio'
    Zie: https://www.w3schools.com/tags/att_audio_autoplay.asp

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!