


HTML5 utilise la balise Audio pour obtenir l'effet de synchronisation des paroles _html5 compétences du didacticiel
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.
- <audio src="musique/Hier encore une fois .mp3" id="aud" lecture automatique="lecture automatique" contrôles="contrôles" préchargement="auto">
- Votre navigateur ne prend pas en charge l'attribut audio, veuillez changer de navigateur pour parcourir.
- 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
- //Partie synchronisation des paroles
- fonction parseLyric(texte) {
- //Séparez le texte ligne par ligne et stockez-le dans le tableau
- var lignes = texte.split('n'),
- //Expression régulière utilisée pour faire correspondre l'heure, le résultat correspondant est similaire à [xx:xx.xx]
- motif = /[d{2}:d{2}.d{2}]/g,
- //Array pour enregistrer le résultat final
- résultat = [];
- //Supprimer les lignes sans heure
- while (!pattern.test(lines[0])) {
- ligneslignes = lignes.slice(1); };
- //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
- lignes[lines.length - 1]
- .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*/ ) {
- //Heure d'extraction [xx:xx.xx]
- var heure
- = v.match(motif), //Extrait des paroles
- v
- 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
- time.forEach(function(v1, i1, a1) {
- //Supprimez les crochets dans le temps pour obtenir xx:xx.xx
- var t
- = v1.slice(1, -1).split(':'); //Pousser le résultat dans le tableau final
- result.push([parseInt(t[0], 10) * 60 parseFloat(t[1]), valeur]); });
- });
- //Enfin, triez les éléments du tableau de résultats par heure afin que les paroles puissent s'afficher normalement après l'enregistrement
- result.sort(function(a, b) {
- retourner a[0] - b[0]
- });
- résultat de retour
- }
- À 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.
Copier le contenu dans le presse-papiers
- fonction fn(sgname){
- $.get('music/' sgname '.lrc',function(data){
- var str=parseLyric(données); pour(var
- i=0,li;i<str.length;i ){
- li=$('<li>' str[i][1] 'li>'); $('#gc ul').append(li);
- }
- $('#aud')[0]
- .ontimeupdate=fonction(){//vidéo Déclenché lorsque la position de lecture actuelle de l'audio change pour (var
- i = 0, l = str.length; je < l ; 🎜> if (this.currentTime /*Durée de lecture actuelle*/
- > str[i][0]) { //Afficher à la page
- $('#gc ul').css('top',-i*40 200 'px'); //Déplacer les paroles vers le haut
- $('#gc ul li').css('color','#fff');
- $('#gc ul li:nth-child(' (i 1) ')').css('color','red'); //Sélectionnez les paroles en cours de lecture
- }
- }
- if(this.ended){ //Détermine si la musique en cours de lecture a fini de jouer
- var
- songslen=$('.songs_list li').length pour(var
- i= 0,val;i<chanson;i ){
- val=$('.songs_list li:nth-child(' (i 1) ')').text(); > if(val
- ==sgname){ i
- =(i==(songslen-1))?1:i 2; sgname
- =$('.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
- $('#aud').attr('src','music/' sgname '.mp3'); fn(sgname);
- retour
- }
- }
- }
- };
- });
- } fn($('.songs_list li:nth-child(1)').text());
- 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
- <div classe="songs_cnt" >
- <ul class="songs_list" >
- <li>Hier Une fois de plus li>
- <li>Tu es belle li>
- ul>
- <bouton classe="sel_song" >点<br/>< br/>我bouton>
- div>
- <div id="gc" >
- <ul>ul>
- div>
css代码
- #gc{
- largeur : 400 px ;
- hauteur : 400 px ;
- fond : transparent ;
- marge : 100 px auto ;
- couleur : #fff ;
- taille de police : 18 px ;
- débordement : masqué ;
- position : relative ;
- }
- #gc ul{
- position : absolue ;
- haut : 200 px ;
- }
- #gc ul li{
- text-align : center ;
- hauteur : 40 px ;
- hauteur de ligne : 40 px ;
- }
- .songs_cnt{
- flotteur : gauche ;
- marge supérieure : 200 px ;
- position : relative ;
- }
- .songs_list{
- couleur de fond : rgba(0,0,0,.2);
- rayon de bordure : 5 px ;
- flotteur : gauche ;
- largeur : 250 px ;
- remplissage : 15 px ;
- marge gauche : -280px ;
- }
- .songs_list li{
- hauteur : 40 px ;
- hauteur de ligne : 40 px ;
- taille de police : 16 px ;
- couleur : rgba(255,255,255,.8);
- curseur : pointeur ;
- }
- .songs_list li:hover{
- taille de police : 20 px ;
- couleur : rgba(255,23,140,.6);
- }
- .sel_song{
- position : absolue ;
- haut : 50 % ;
- largeur : 40 px ;
- hauteur : 80 px ;
- marge supérieure : -40 px ;
- taille de police : 16 px ;
- text-align : center ;
- couleur de fond : transparent ;
- bordure : 1px solide #2DCB70 ;
- font-weight : gras ;
- curseur : pointeur ;
- rayon de bordure : 3 px ;
- famille de polices : sans-serif ;
- transition : tous 2 ;
- -moz-transition:tous 2 ;
- -webkit-transition : tous 2 ;
- -o-transition : tous 2 ;
- }
- .sel_song:hover{
- couleur : #fff ;
- couleur de fond : #2DCB70 ;
- }
- .songs_list li.active{
- couleur : #f00 ;
- }
js代码
- $('.songs_list li:nth-child(1)').addClass('active');
- $('.songs_cnt').mouseenter(function () {
- var e=événement||window.event;
- var tag= e.target||e.srcElement;
- if(tag.nodeName=='BUTTON'){
- $('.songs_list').animate({'marginLeft':'0px'},'slow');
- }
- });
- $('.songs_cnt').mouseleave(function () {
- $('.songs_list').animate({'marginLeft':'-280px'},'slow');
- });
- $('.songs_list li').each(function () {
- $(this).click(function () {
- $('#aud').attr('src','music/' $(this).text() '.mp3');
- $('#gc ul').empty();
- fn($(this).text());
- $('.songs_list li').removeClass('active');
- $(this).addClass('active');
- });
- })
好了,到了这里,那么你的这个歌词同步的效果的一些功能差不多都有了,关于HTML5使用Audio标签实现歌词同步的效果今天也就到这里了。更多信息请登录脚本之家网站了解更多!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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.

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.

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.

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.

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.

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.
