Maison interface Web Tutoriel H5 HTML5 utilise la balise Audio pour obtenir l'effet de synchronisation des paroles _html5 compétences du didacticiel

HTML5 utilise la balise Audio pour obtenir l'effet de synchronisation des paroles _html5 compétences du didacticiel

May 16, 2016 pm 03:51 PM
audio html5

L'aspect le plus puissant du HTML5 est le traitement des fichiers multimédias. Par exemple, la lecture vidéo peut être réalisée en utilisant une simple balise vedio. De même, il existe une balise correspondante pour le traitement des fichiers audio en HTML5, c'est-à-dire que la balise audio
HTML5 est disponible depuis si longtemps, mais la balise audio qu'elle contient n'a été utilisée qu'une seule fois, et bien sûr c'est juste pour insérez cette balise dans la page. Cette fois, j'ai juste profité d'aider un ami à créer quelques pages et à m'entraîner à utiliser la balise audio.
Vous devez d'abord insérer une balise audio dans la page. Notez qu'il est préférable de ne pas définir loop='loop' ici. Cet attribut est utilisé pour définir la lecture en boucle, car lorsque vous devez utiliser l'attribut terminé plus tard, si la boucle est définie sur If looping, l'attribut terminé sera toujours faux.
autoplay='autoplay' définit la page pour qu'elle joue automatiquement de la musique après le chargement. Les attributs de préchargement et de lecture automatique ont le même effet. Si l'attribut de lecture automatique apparaît dans la balise, l'attribut de préchargement sera ignoré.
controls='controls' définit la barre de contrôle pour afficher la musique.

Code XML/HTMLCopier le contenu dans le presse-papiers
  1. <audio src="musique/Hier encore une fois .mp3" id="aud" lecture automatique="lecture automatique" contrôles="contrôles" préchargement="auto"> 
  2. Votre navigateur ne prend pas en charge l'attribut audio, veuillez changer de navigateur pour parcourir. 
  3. audio> 

Après avoir ce tag, félicitations, votre page peut désormais jouer de la musique. Mais cela rendrait la page trop monotone, j'ai donc ajouté quelques éléments à la page pour que les paroles puissent être affichées sur la page de manière synchrone et que la musique à jouer puisse également être sélectionnée. Donc, pour obtenir cet effet, nous devons d’abord télécharger des fichiers de paroles au format lrc, puis formater la musique. Parce que le fichier musical au début ressemblait à ça


Nous devons insérer chaque parole dans un tableau à deux chiffres. Après le formatage, les paroles deviendront comme ceci
Voici ci-joint le code de formatage des paroles

.

Code XML/HTMLCopier le contenu dans le presse-papiers
  1. //Partie synchronisation des paroles
  2. fonction parseLyric(texte) {
  3. //Séparez le texte ligne par ligne et stockez-le dans le tableau
  4. var lignes = texte.split('n'),
  5. //Expression régulière utilisée pour faire correspondre l'heure, le résultat correspondant est similaire à [xx:xx.xx]
  6. motif = /[d{2}:d{2}.d{2}]/g,
  7. //Array pour enregistrer le résultat final
  8. résultat = [];
  9. //Supprimer les lignes sans heure
  10. while (!pattern.test(lines[0])) {
  11. ligneslignes = lignes.slice(1);
  12. };
  13. //Lorsque vous utilisez 'n' pour générer le tableau ci-dessus, le dernier élément du résultat est un élément vide, qui sera supprimé ici
  14. lignes[lines.length - 1]
  15. .length === 0 && lignes.pop(); lines.forEach(function(v /*valeur de l'élément du tableau*/ , i /*index de l'élément*/ , a /*tableau lui-même*/ ) {
  16. //Heure d'extraction [xx:xx.xx]
  17. var
  18. heure
  19. = v.match(motif), //Extrait des paroles
  20. v
  21. valeur = v.replace(motif, '' ); //Comme il peut y avoir plusieurs heures sur une même ligne, l'heure peut être sous la forme de [xx:xx.xx][xx:xx.xx][xx:xx.xx], qui doit être encore plus séparés
  22. time.forEach(function(v1, i1, a1) {
  23. //Supprimez les crochets dans le temps pour obtenir xx:xx.xx
  24. var
  25. t
  26. = v1.slice(1, -1).split(':'); //Pousser le résultat dans le tableau final
  27. result.push([parseInt(t[0], 10) * 60 parseFloat(t[1]), valeur]);
  28. });
  29. });
  30. //Enfin, triez les éléments du tableau de résultats par heure afin que les paroles puissent s'afficher normalement après l'enregistrement
  31. result.sort(function(a, b) {
  32. retourner a[0] - b[0]
  33. });
  34. résultat de retour
  35. }
  36. À ce stade, nous pouvons facilement utiliser les paroles de chaque morceau de musique. Nous avons besoin d'une fonction pour obtenir les paroles et les afficher sur la page de manière synchrone, afin que la musique puisse être commutée normalement. Le code est joint ci-dessous.
Code XML/HTML

Copier le contenu dans le presse-papiers

  1. fonction fn(sgname){
  2. $.get('music/' sgname '.lrc',function(data){  
  3. var str=parseLyric(données);
  4. pour(var
  5. i=0,li;i<str.length;i ){
  6. li=$('<li>' str[i][1] 'li>'); 
  7. $('#gc ul').append(li);
  8. }
  9. $('#aud')[0]
  10. .ontimeupdate=fonction(){//vidéo Déclenché lorsque la position de lecture actuelle de l'audio change
  11. pour (var
  12. i = 0, l = str.length; je < l ; 🎜> if (this.currentTime /*Durée de lecture actuelle*/
  13. > str[i][0]) { //Afficher à la page
  14. $('#gc ul').css('top',-i*40 200 'px'); //Déplacer les paroles vers le haut
  15. $('#gc ul li').css('color','#fff');
  16. $('#gc ul li:nth-child(' (i 1) ')').css('color','red'); //Sélectionnez les paroles en cours de lecture
  17. }
  18. }
  19. if(this.ended){ //Détermine si la musique en cours de lecture a fini de jouer
  20. var
  21. songslen=$('.songs_list li').length pour(var
  22. i= 0,val;i<chanson;i ){
  23. val=$('.songs_list li:nth-child(' (i 1) ')').text(); > if(val
  24. ==sgname){ i
  25. =(i==(songslen-1))?1:i 2;  sgname
  26. =$('.songs_list li:nth-child(' i ')').text( // Changer une fois la musique terminée jouer un morceau de musique $('#gc ul').empty(); //Effacer les paroles
  27. $('#aud').attr('src','music/' sgname '.mp3'); fn(sgname);
  28. retour
  29. }
  30. }
  31. }
  32. };
  33. });
  34. } fn($('.songs_list li:nth-child(1)').text());
  35. Maintenant, ici, les paroles de votre musique peuvent être affichées sur la page normalement et de manière synchrone. Mais il manque encore une chose, c'est une liste de musique. J'espère pouvoir cliquer sur la musique dans cette liste pour lire la musique. Le code est joint ci-dessous. Code HTML


Code XML/HTML
Copier le contenu dans le presse-papiers

  1. <div classe="songs_cnt" >    
  2. <ul class="songs_list" >    
  3. <li>Hier Une fois de plus li>    
  4. <li>Tu es belle li>    
  5. ul>    
  6. <bouton classe="sel_song" ><br/>< br/>bouton>
  7. div>    
  8. <div id="gc" >    
  9. <ul>ul>    
  10. div>   

css代码

Code XML/HTML复制内容到剪贴板
  1. #gc{    
  2. largeur : 400 px ;    
  3. hauteur : 400 px ;    
  4. fond : transparent ;    
  5. marge : 100 px auto ;    
  6. couleur : #fff ;    
  7. taille de police : 18 px ;    
  8. débordement : masqué ;    
  9. position : relative ;    
  10. }    
  11. #gc ul{    
  12. position : absolue ;    
  13. haut : 200 px ;    
  14. }    
  15. #gc ul li{    
  16. text-align : center ;    
  17. hauteur : 40 px ;    
  18. hauteur de ligne : 40 px ;    
  19. }    
  20. .songs_cnt{    
  21. flotteur : gauche ;    
  22. marge supérieure : 200 px ;    
  23. position : relative ;    
  24. }    
  25. .songs_list{    
  26. couleur de fond : rgba(0,0,0,.2);    
  27. rayon de bordure : 5 px ;    
  28. flotteur : gauche ;    
  29. largeur : 250 px ;    
  30. remplissage : 15 px ;    
  31. marge gauche : -280px ;    
  32. }    
  33. .songs_list li{    
  34. hauteur : 40 px ;    
  35. hauteur de ligne : 40 px ;    
  36. taille de police : 16 px ;    
  37. couleur : rgba(255,255,255,.8);    
  38. curseur : pointeur ;    
  39. }    
  40. .songs_list li:hover{    
  41. taille de police : 20 px ;    
  42. couleur : rgba(255,23,140,.6);    
  43. }    
  44. .sel_song{    
  45. position : absolue ;    
  46. haut : 50 % ;    
  47. largeur : 40 px ;    
  48. hauteur : 80 px ;    
  49. marge supérieure : -40 px ;    
  50. taille de police : 16 px ;    
  51. text-align : center ;    
  52. couleur de fond : transparent ;    
  53. bordure : 1px solide #2DCB70 ;    
  54. font-weight : gras ;    
  55. curseur : pointeur ;    
  56. rayon de bordure : 3 px ;    
  57. famille de polices : sans-serif ;    
  58. transition : tous 2 ;    
  59. -moz-transition:tous 2 ;    
  60. -webkit-transition : tous 2 ;    
  61. -o-transition : tous 2 ;    
  62. }    
  63. .sel_song:hover{    
  64. couleur : #fff ;    
  65. couleur de fond : #2DCB70 ;    
  66. }    
  67. .songs_list li.active{    
  68. couleur : #f00 ;    
  69. }   

js代码

Code XML/HTML复制内容到剪贴板
  1. $('.songs_list li:nth-child(1)').addClass('active');    
  2. $('.songs_cnt').mouseenter(function () {    
  3. var e=événement||window.event;    
  4. var tage.target||e.srcElement;    
  5. if(tag.nodeName=='BUTTON'){    
  6. $('.songs_list').animate({'marginLeft':'0px'},'slow');    
  7. }    
  8. });    
  9. $('.songs_cnt').mouseleave(function () {    
  10. $('.songs_list').animate({'marginLeft':'-280px'},'slow');    
  11. });    
  12. $('.songs_list li').each(function () {    
  13. $(this).click(function () {    
  14. $('#aud').attr('src','music/' $(this).text() '.mp3');    
  15. $('#gc ul').empty();    
  16. fn($(this).text());    
  17. $('.songs_list li').removeClass('active');    
  18. $(this).addClass('active');    
  19. });    
  20. })  

好了,到了这里,那么你的这个歌词同步的效果的一些功能差不多都有了,关于HTML5使用Audio标签实现歌词同步的效果今天也就到这里了。更多信息请登录脚本之家网站了解更多!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bordure de tableau en HTML Bordure de tableau en HTML Sep 04, 2024 pm 04:49 PM

Guide de la bordure de tableau en HTML. Nous discutons ici de plusieurs façons de définir une bordure de tableau avec des exemples de bordure de tableau en HTML.

Tableau imbriqué en HTML Tableau imbriqué en HTML Sep 04, 2024 pm 04:49 PM

Ceci est un guide des tableaux imbriqués en HTML. Nous discutons ici de la façon de créer un tableau dans le tableau ainsi que des exemples respectifs.

Marge gauche HTML Marge gauche HTML Sep 04, 2024 pm 04:48 PM

Guide de la marge HTML gauche. Nous discutons ici d'un bref aperçu de la marge gauche HTML et de ses exemples ainsi que de son implémentation de code.

Disposition du tableau HTML Disposition du tableau HTML Sep 04, 2024 pm 04:54 PM

Guide de mise en page des tableaux HTML. Nous discutons ici des valeurs de la mise en page des tableaux HTML ainsi que des exemples et des résultats en détail.

Klipsch dévoile la barre de son phare Flexus Core 300 avec prise en charge 8K, 12 haut-parleurs et correction de pièce Klipsch dévoile la barre de son phare Flexus Core 300 avec prise en charge 8K, 12 haut-parleurs et correction de pièce Sep 05, 2024 am 10:16 AM

Le Klipsch Flexus Core 300 est le modèle haut de gamme de la série et se positionne au-dessus du Flexus Core 200 déjà disponible dans la gamme de barres de son de l'entreprise. Selon Klipsch, il s'agit de la première barre de son au monde dont le son peut être adapté aux besoins.

Espace réservé d'entrée HTML Espace réservé d'entrée HTML Sep 04, 2024 pm 04:54 PM

Guide de l'espace réservé de saisie HTML. Nous discutons ici des exemples d'espace réservé d'entrée HTML ainsi que des codes et des sorties.

Déplacer du texte en HTML Déplacer du texte en HTML Sep 04, 2024 pm 04:45 PM

Guide pour déplacer du texte en HTML. Nous discutons ici d'une introduction, du fonctionnement des balises de sélection avec la syntaxe et des exemples à implémenter.

Liste ordonnée HTML Liste ordonnée HTML Sep 04, 2024 pm 04:43 PM

Guide de la liste ordonnée HTML. Ici, nous discutons également de l'introduction de la liste et des types HTML ordonnés ainsi que de leur exemple respectivement.

See all articles