


HTML5 verwendet das Audio-Tag, um den Effekt der Liedtextsynchronisierung zu erzielen. _html5-Tutorial-Fähigkeiten
Das Leistungsstärkste an HTML5 ist die Verarbeitung von Mediendateien. Beispielsweise kann die Videowiedergabe durch die Verwendung eines einfachen Vedio-Tags erreicht werden. Ebenso gibt es in HTML5 ein entsprechendes Tag für die Verarbeitung von Audiodateien, d Fügen Sie diesen Tag in die Seite ein. Dieses Mal habe ich einfach die Gelegenheit genutzt, einem Freund dabei zu helfen, ein paar Seiten zu erstellen und die Verwendung des Audio-Tags zu üben.
Zuerst müssen Sie ein Audio-Tag in die Seite einfügen. Es empfiehlt sich, hier nicht „loop='loop‘“ festzulegen. Dieses Attribut wird zum Festlegen der Loop-Wiedergabe verwendet, da Sie später das Attribut „ended“ verwenden müssen. Wenn die Schleife auf „Bei Schleife“ eingestellt ist, ist das beendete Attribut immer falsch.
autoplay='autoplay' legt fest, dass die Seite nach dem Laden automatisch Musik abspielt. Die Attribute „preload“ und „autoplay“ haben den gleichen Effekt. Wenn das Attribut „autoplay“ im Tag erscheint, wird das Attribut „preload“ ignoriert.
controls='controls' legt die Steuerleiste für die Anzeige von Musik fest.
- <Audio src="music/Yesterday Once More .mp3" id="aud" Autoplay="Autoplay" Steuerelemente="Steuerelemente" Vorspannung="auto">
- Ihr Browser unterstützt das Audioattribut nicht. Bitte ändern Sie den Browser zum Durchsuchen.
- Audio>
Wir müssen jeden Text in ein zweistelliges Array einfügen. Nach der Formatierung sieht der Text so aus:
Hier ist der Code zum Formatieren des Liedtextes enthalten.
- //Lyrics-Synchronisationsteil
- Funktion parseLyric(text) {
- //Teilen Sie den Text Zeile für Zeile auf und speichern Sie ihn im Array
- var lines = text.split('n'),
- //Regulärer Ausdruck, der zum Abgleichen der Zeit verwendet wird. Das Abgleichsergebnis ähnelt [xx:xx.xx]
- Muster = /[d{2}:d{2}.d{2}]/g,
- //Array zum Speichern des Endergebnisses
- Ergebnis = []; //Linien ohne Zeit entfernen
- while (!pattern.test(lines[0])) {
- lineslines =lines.slice(1); };
- //Wenn Sie „n“ zum Generieren des obigen Arrays verwenden, ist das letzte Element im Ergebnis ein leeres Element, das hier entfernt wird
- lines[lines.length - 1] .length
- === 0 &&lines.pop( lines.forEach(function(v /*array element value*/ , i /*element index*/ , a /*array yourself*/ ) {
- //Extrahierungszeit [xx:xx.xx]
- var time
- = v.match(pattern), //Liedtext extrahieren
- v
- Wert = v.replace(muster, '' ). //Da es in einer Zeile mehrere Zeiten geben kann, kann die Zeit in der Form [xx:xx.xx][xx:xx.xx][xx:xx.xx] vorliegen, was erforderlich ist weiter getrennt werden
- time.forEach(function(v1, i1, a1) {
- //Entfernen Sie rechtzeitig die eckigen Klammern, um xx:xx.xx zu erhalten
- var t
- = v1.slice(1, -1).split(':'); //Schiebe das Ergebnis in das endgültige Array
- result.push([parseInt(t[0], 10) * 60 parseFloat(t[1]), value]);
- });
- });
- //Sortieren Sie abschließend die Elemente im Ergebnisarray nach Zeit, damit der Liedtext nach dem Speichern normal angezeigt werden kann
- result.sort(function(a, b) {
- Gib a[0] - b[0] zurück; });
- Ergebnis zurückgeben
- }
- An diesem Punkt können wir problemlos die Liedtexte jedes Musikstücks verwenden. Wir benötigen eine Funktion, um die Liedtexte abzurufen und sie synchron auf der Seite anzuzeigen, damit die Musik normal umgeschaltet werden kann. Der Code ist unten angehängt.
Inhalt in die Zwischenablage kopieren
- Funktion fn(sgname){
- $.get('music/' sgname '.lrc',function(data){
- var str=parseLyric(data);
- for(var i=0,li;i<str.length;i ){
- li=$('<li>' str[i][1] 'li>');
- $('#gc ul').append(li);
- }
- $('#aud')[0].ontimeupdate=function(){//video Wird ausgelöst, wenn sich die aktuelle Wiedergabeposition des Audios ändert
- for (var i = 0, l = str.length; i < l; 🎜>
- if (this.currentTime /*Aktuelle Wiedergabezeit*/ > str[i][0]) {
- //Auf Seite anzeigen
- $('#gc ul').css('top',-i*40 200 'px'); //Liedtext nach oben verschieben
- $('#gc ul li').css('color','#fff'); $('#gc ul li:nth-child(' (i 1) ')').css('color','red'); //Markieren Sie, welcher Text gerade gespielt wird
- }
- }
- if(this.ended){ //Bestimmen Sie, ob die aktuell abgespielte Musik zu Ende gespielt wurde
- var
- songslen=$('.songs_list li').length; for(var
- i= 0,val;i<songslen;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(); //Umschalten, nachdem die Musik fertig ist Ein Musikstück spielen $('#gc ul').empty(); //Text löschen
- $('#aud').attr('src','music/' sgname '.mp3');
- fn(sgname);
- zurück;
- }
- }
- }
- };
- });
- } fn($('.songs_list li:nth-child(1)').text());
- Jetzt können hier Ihre Musiktexte normal und synchron auf der Seite angezeigt werden. Aber eines fehlt noch, nämlich eine Musikliste. Ich hoffe, dass ich auf die Musik in dieser Liste klicken kann, um die Musik abzuspielen. HTML-Code
XML/HTML-Code
Inhalt in die Zwischenablage kopieren
- <div class="songs_cnt" >
- <ul class="songs_list" >
- <li>Gestern noch einmal li>
- <li>Du bist wunderschön li>
- ul>
- <button class="sel_song" >点<br/>< br/>我Schaltfläche>
- div>
- <div id="gc" >
- <ul>ul>
- div>
css代码
- #gc{
- Breite: 400px;
- Höhe: 400px;
- Hintergrund: transparent;
- Rand: 100px automatisch;
- Farbe: #fff;
- Schriftgröße: 18px;
- Überlauf: versteckt;
- Position: relativ;
- }
- #gc ul{
- Position: absolut;
- oben: 200px;
- }
- #gc ul li{
- text-align: center;
- Höhe: 40px;
- Zeilenhöhe: 40px;
- }
- .songs_cnt{
- float: links;
- Rand oben: 200px;
- Position: relativ;
- }
- .songs_list{
- Hintergrundfarbe: rgba(0,0,0,.2);
- Rahmenradius: 5px;
- float: links;
- Breite: 250px;
- Auffüllung: 15px;
- Rand links: -280px;
- }
- .songs_list li{
- Höhe: 40px;
- Zeilenhöhe: 40px;
- Schriftgröße: 16px;
- Farbe: rgba(255,255,255,.8);
- Cursor: Zeiger;
- }
- .songs_list li:hover{
- Schriftgröße: 20px;
- Farbe: rgba(255,23,140,.6);
- }
- .sel_song{
- Position: absolut;
- oben: 50 %;
- Breite: 40px;
- Höhe: 80px;
- margin-top: -40px;
- Schriftgröße: 16px;
- text-align: center;
- Hintergrundfarbe: transparent;
- Rahmen: 1 Pixel durchgezogen #2DCB70;
- Schriftstärke: fett;
- Cursor: Zeiger;
- Grenzradius: 3px;
- Schriftfamilie: serifenlos;
- Übergang:alle 2er;
- -moz-transition:all 2s;
- -webkit-transition:all 2s;
- -o-transition:all 2s;
- }
- .sel_song:hover{
- Farbe: #fff;
- Hintergrundfarbe: #2DCB70;
- }
- .songs_list li.active{
- Farbe: #f00;
- }
js代码
- $('.songs_list li:nth-child(1)').addClass('active');
- $('.songs_cnt').mouseenter(function () {
- var e=event||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标签实现歌词同步的效果今天也就到这里了.更多信息请登录脚本之家网站了解更多!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

Der Klipsch Flexus Core 300 ist das Topmodell der Serie und positioniert sich über dem bereits verfügbaren Flexus Core 200 im Soundbar-Sortiment des Unternehmens. Laut Klipsch handelt es sich um die erste Soundbar der Welt, deren Klang sich an die Anforderungen anpassen lässt

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele
