Jump to content
Fórum Script Brasil
  • 0

Desabilitar primeiro áudio de player


Ronaldo Neves
 Share

Question

Boa tarde, peguei o código de um player com html5 e javascript, no entanto gostaria que ao executar o primeiro áudio da lista ficassem desabilitadas todas as opções para alterar o áudio, não pudesse clicar em outro áudio da lista ou passar até que o primeiro terminasse.

 

O código em execução pode ser visto no link: http://jsfiddle.net/WsXX3/33/

 

O código é o seguinte:

 

HTML

<audio id="audio" preload="auto" tabindex="0" controls="" type="audio/mpeg">
        <source type="audio/mp3" src="http://www.archive.org/download/bolero_69/Bolero.mp3">
        Sorry, your browser does not support HTML5 audio.
    </audio>
    <ul id="playlist">
        <li class="active"><a href="http://www.archive.org/download/bolero_69/Bolero.mp3">Ravel Bolero</a></li>
        <li><a href="http://www.archive.org/download/MoonlightSonata_755/Beethoven-MoonlightSonata.mp3">Moonlight Sonata - Beethoven</a></li>
        <li><a href="http://www.archive.org/download/CanonInD_261/CanoninD.mp3">Canon in D Pachabel</a></li>
        <li><a href="http://www.archive.org/download/PatrikbkarlChamberSymph/PatrikbkarlChamberSymph_vbr_mp3.zip">patrikbkarl chamber symph</a></li>

    </ul>

JavaScript

var audio;
var playlist;
var tracks;
var current;

init();
function init(){
    current = 0;
    audio = $('audio');
    playlist = $('#playlist');
    tracks = playlist.find('li a');
    len = tracks.length - 1;
    audio[0].volume = .10;
    audio[0].play();
    playlist.find('a').click(function(e){
        e.preventDefault();
        link = $(this);
        current = link.parent().index();
        run(link, audio[0]);
    });
    audio[0].addEventListener('ended',function(e){
        current++;
        if(current == len){
            current = 0;
            link = playlist.find('a')[0];
        }else{
            link = playlist.find('a')[current];    
        }
        run($(link),audio[0]);
    });
}
function run(link, player){
        player.src = link.attr('href');
        par = link.parent();
        par.addClass('active').siblings().removeClass('active');
        audio[0].load();
        audio[0].play();
}

O que precisaria ser mudado pra fazer o que eu gostaria? Não tenho muito conhecimento em javascript

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Não percebi bem se é isto que pretendes mas basicamente como está deixa de fazer sentido teres os links clicáveis pois não vai ser possível alterar a faixa, independentemente de qual estiver a tocar:

(...)
first = playlist.find('a:first');
playlist.find('a').click(function(e){
    e.preventDefault();
    if ($(this) === first) {
        link = $(this);
        current = link.parent().index();
        run(link, audio[0]);
    }
});
(...)

Exemplo.

Edited by wootzor
Link to comment
Share on other sites

  • 0

Não percebi bem se é isto que pretendes mas basicamente como está deixa de fazer sentido teres os links clicáveis pois não vai ser possível alterar a faixa, independentemente de qual estiver a tocar:

(...)
first = playlist.find('a:first');
playlist.find('a').click(function(e){
    e.preventDefault();
    if ($(this) === first) {
        link = $(this);
        current = link.parent().index();
        run(link, audio[0]);
    }
});
(...)

Exemplo.

A situação é a seguinte:

o cliente tem uma lista de mensagens e ele quer que a primeira seja uma publicidade, por isso quer que não tenha como o usuário passar a primeira faixa, mas as demais ele poderia alterar a vontade.

A limitação teria que ser apenas na primeira faixa, pra forçar o usuário a escutar todo o áudio da publicidade e dando liberdade para que ele possa ouvir as demais sem problema.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...