Schimbarea melodiei dintr-un tag `audio`

Nu prea ma pricep la javascript, daca ma poate ajuta cineva cu ce sa completez la sourceMp3.src

function loadSong(){
    
    var player=document.getElementById('player');
    var sourceOgg=document.getElementById('player');
    var sourceMp3=document.getElementById('player');
    
    
    sourceMp3.src=+ this.parentElement.getAttribute('data-value');
    
   player.load(); //just start buffering (preload)
   player.play(); //start playing
}

HTML

<td><b id="song1" data-value="'.$link.'"><button onclick="loadSong()"> Play </button> </b></td>

Nu pare sa aiba vreo logica ce ai facut tu acolo…

@a73csx, explica-ne pas cu pas (cu liniute) ce doresti sa faci. Asa intelegem si noi, si iti faci si tu ordine in idei, iar astfel poate iti apar noi abordari in minte.

1 Like

Am o lista de melodii fiecare melodie are un buton de play, cand apesi butonul play ar trebui sa redea melodia in :slight_smile:

<audio id="player" controls="controls">
  <source id="sourceOgg" src="" type="audio/ogg" />
  <source id="sourceMp3" src="" type="audio/mp3" />
  Your browser does not support the audio element.
</audio>

Butonul de Play din dreptul melodiei este :

<td>
<b id="song1" data-value="'.$play.'"><button onclick="loadSong()"> Play </button> </b>
		</td>

JavaScript , ce are legatura cu Butonul de Play este :slight_smile:

function loadSong(){
    
    var player=document.getElementById('player');
    var sourceOgg=document.getElementById('player');
    var sourceMp3=document.getElementById('player');
    
    
    sourceMp3.src=+ this.parentElement.getAttribute('data-value');
    
   player.load(); //just start buffering (preload)
   player.play(); //start playing
}

Mie nu-mi functioneaza, pentru ca nu stiu cum sa-i setez exact Atributul JS de la Buton ( sa fac legatura Buton cu JS) unde contine SRC (adresa melodiei)

sourceMp3.src=+ this.parentElement.getAttribute('data-value');
//daca editez sourceMp3.src=**+ this.parentElement.getAttribute('data-value');**
// cu url direct spre melodiei (o reda in player)

Eu aș face mici modificări la funcția ta:

function loadSong(){

Aș transforma-o în:

function loadSong(src){

Iar partea asta:

sourceMp3.src=+ this.parentElement.getAttribute('data-value');

Ar fi convertită, evident, în:

sourceMp3.src=+ src;

Din HTML te legi de asta așa:

<button onclick="loadSong(' . $play . ')">

Acum, după ce am scris codul uuuun pic mai citeț, hai să-l facem să și meargă. Poți trimite și două formate spre player:

<button onclick="loadSong(' . $mp3Src . ',' . $oggSrc . ')">

Evident, funcția de mai sus se schimbă:

function loadSong(mp3, ogg){
  var player=document.getElementById('player');
  player.getElementById('sourceOgg').src = mp3;
  player.getElementById('sourceMp3').src = ogg;
3 Likes

Nu stiu daca merge la tine, la mine unu, nu merge !

Păi… nu am încercat să văd dacă merge, ci doar ți-am arătat de unde aș porni eu. „Nu merge” nu e ceva foarte ajutător. Apare ceva în consolă?

PS: încearcă să setezi atributul folosind setAttribute.

PPS: Works on my machine™

2 Likes