jquery
  • audio
  • preload
  • 2010-05-04 6 views 9 likes 
    9

    J'ai un site Web qui joue du son lorsque vous cliquez sur un bouton.jQuery: Comment préchargez-vous le son?

    Voici comment je le fais

    function PlaySound(soundfile) { 
        $('#soundContainer').html("<embed src='/uploads/sounds/" + soundfile + "' hidden=true autostart=true loop=false>"); 
    } 
    

    Comment précharger-vous le fichier sonore au préalable?

    Merci.

    Répondre

    12

    penser juste au-dessus de ma tête, pouvez-vous faire une demande de paiement ajax pour le fichier son, mais n'afficher le bouton jusqu'à ce que le fichier est de 100% chargé.

    $(document).ready(function() { 
        $.ajax({ 
         url: "soundfile.mp3", 
         success: function() { 
          $("#play_button").show(); 
         } 
        }); 
    }); 
    
    +0

    Parfait! Merci! – Aximili

    +2

    Il est une solution bien mais ne fonctionne pas dans IE au moins pas avec les fichiers sonores, car IE n'est pas capable de gérer correctement les fichiers binaires et ne déclenche pas la fonction de succès, voir cette question pour plus d'informations: http: //bugs.jquery. com/ticket/11426 - l'a découvert juste aujourd'hui. – SamiSalami

    0
    1. Effectuez une requête AJAX. Si votre serveur émet en-têtes de mise en cache appropriés (comme Expire) il sera stocké dans le cache du navigateur.

    2. La façon laide:

    soundfile = new Image(); 
    soundfile.src = /uploads/sounds/" + soundfile;
    +0

    Merci sanmai, mais je ne pense pas que le code fonctionne ... Il semble télécharger le fichier lorsque la page est chargée, mais le télécharger à nouveau lorsque je clique sur le bouton. – Aximili

    +0

    Avez-vous vérifié les en-têtes de mise en cache? S'il n'y en a aucun, un client téléchargera sûrement un fichier. Si vous utilisez Apache, prenez le temps de lire ** mod_exires **. Sinon, Google est d'aider. – sanmai

    0

    Il n'y a pas une telle chose comme <embed>.

    Vous pouvez utiliser un élément HTML5 <audio> sans autoplay, puis le faire jouer avec sa méthode play().

    +7

    Et aussi sacrifier le support IE. –

    +14

    Vous pouvez ajouter la compatibilité IE en utilisant . Je lierais quelques exemples, mais GeoCities est fermé. – cbednarski

    2

    Il y a tellement de meilleures façons de jouer son avec JavaScript. Pour mon préféré, consultez SoundManager. Avec lui, vous pouvez simplement appeler soundManager.load pour charger le fichier sonore de manière préventive.

    1

    Faites ceci en HTML5 comme ceci:

    my_sound = $("<audio>", {src:"filename.mp3",preload:"auto"}).appendTo("body"); 
    

    ensuite la jouer:

    my_sound[0].play(); 
    
    Questions connexes