Heim Web-Frontend H5-Tutorial HTML5 verwendet das Audio-Tag, um den Effekt der Liedtextsynchronisierung zu erzielen. _html5-Tutorial-Fähigkeiten

HTML5 verwendet das Audio-Tag, um den Effekt der Liedtextsynchronisierung zu erzielen. _html5-Tutorial-Fähigkeiten

May 16, 2016 pm 03:51 PM
audio html5

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.

XML/HTML-CodeInhalt in die Zwischenablage kopieren
  1. <Audio src="music/Yesterday Once More .mp3" id="aud" Autoplay="Autoplay" Steuerelemente="Steuerelemente" Vorspannung="auto"> 
  2. Ihr Browser unterstützt das Audioattribut nicht. Bitte ändern Sie den Browser zum Durchsuchen. 
  3. Audio> 
Nachdem Sie dieses Tag haben, herzlichen Glückwunsch, Ihre Seite kann jetzt Musik abspielen. Dies würde die Seite aber zu eintönig machen, deshalb habe ich der Seite einige Dinge hinzugefügt, damit die Liedtexte synchron auf der Seite angezeigt werden können und auch die abzuspielende Musik ausgewählt werden kann. Um diesen Effekt zu erzielen, müssen wir zunächst einige Textdateien im LRC-Format herunterladen und dann die Musik formatieren. Denn die Musikdatei am Anfang sah so aus

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.

XML/HTML-CodeInhalt in die Zwischenablage kopieren
  1. //Lyrics-Synchronisationsteil
  2. Funktion parseLyric(text) {
  3. //Teilen Sie den Text Zeile für Zeile auf und speichern Sie ihn im Array
  4. var lines = text.split('n'),
  5. //Regulärer Ausdruck, der zum Abgleichen der Zeit verwendet wird. Das Abgleichsergebnis ähnelt [xx:xx.xx]
  6. Muster = /[d{2}:d{2}.d{2}]/g,
  7. //Array zum Speichern des Endergebnisses
  8. Ergebnis = [];
  9. //Linien ohne Zeit entfernen
  10. while (!pattern.test(lines[0])) {
  11. lineslines =lines.slice(1); };
  12. //Wenn Sie „n“ zum Generieren des obigen Arrays verwenden, ist das letzte Element im Ergebnis ein leeres Element, das hier entfernt wird
  13. lines[lines.length - 1]
  14. .length
  15. === 0 &&lines.pop( lines.forEach(function(v /*array element value*/ , i /*element index*/ , a /*array yourself*/ ) {
  16. //Extrahierungszeit [xx:xx.xx]
  17. var
  18. time
  19. = v.match(pattern), //Liedtext extrahieren
  20. v
  21. 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
  22. time.forEach(function(v1, i1, a1) {
  23. //Entfernen Sie rechtzeitig die eckigen Klammern, um xx:xx.xx zu erhalten
  24. var
  25. t
  26. = v1.slice(1, -1).split(':'); //Schiebe das Ergebnis in das endgültige Array
  27. result.push([parseInt(t[0], 10) * 60 parseFloat(t[1]), value]);
  28. });
  29. });
  30. //Sortieren Sie abschließend die Elemente im Ergebnisarray nach Zeit, damit der Liedtext nach dem Speichern normal angezeigt werden kann
  31. result.sort(function(a, b) {
  32. Gib a[0] - b[0] zurück;
  33. });
  34. Ergebnis zurückgeben
  35. }
  36. 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.
XML/HTML-Code

Inhalt in die Zwischenablage kopieren

  1. Funktion fn(sgname){
  2. $.get('music/' sgname '.lrc',function(data){  
  3. var str=parseLyric(data);
  4. for(var i=0,li;i<str.length;i ){
  5. li=$('<li>' str[i][1] 'li>'); 
  6. $('#gc ul').append(li);
  7. }
  8. $('#aud')[0].ontimeupdate=function(){//video Wird ausgelöst, wenn sich die aktuelle Wiedergabeposition des Audios ändert
  9. for (var i = 0, l = str.length; i < l; 🎜>
  10. if (this.currentTime /*Aktuelle Wiedergabezeit*/ > str[i][0]) {
  11. //Auf Seite anzeigen
  12. $('#gc ul').css('top',-i*40 200 'px'); //Liedtext nach oben verschieben
  13. $('#gc ul li').css('color','#fff'); $('#gc ul li:nth-child(' (i 1) ')').css('color','red'); //Markieren Sie, welcher Text gerade gespielt wird
  14. }
  15. }
  16. if(this.ended){ //Bestimmen Sie, ob die aktuell abgespielte Musik zu Ende gespielt wurde
  17. var
  18. songslen=$('.songs_list li').length; for(var
  19. i= 0,val;i<songslen;i ){
  20. val=$('.songs_list li:nth-child(' (i 1) ')').text(); if(
  21. val==sgname){
  22. i=(i==(songslen-1))?1:i 2; 
  23. sgname=$('.songs_list li:nth-child(' i ')').text(); //Umschalten, nachdem die Musik fertig ist Ein Musikstück spielen $('#gc ul').empty(); //Text löschen
  24. $('#aud').attr('src','music/' sgname '.mp3');
  25. fn(sgname);
  26. zurück;
  27. }
  28. }
  29. }
  30. };
  31. });
  32. } fn($('.songs_list li:nth-child(1)').text());
  33. 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

  1. <div class="songs_cnt" >    
  2. <ul class="songs_list" >    
  3. <li>Gestern noch einmal li>    
  4. <li>Du bist wunderschön li>    
  5. ul>    
  6. <button class="sel_song" ><br/>< br/>Schaltfläche>
  7. div>    
  8. <div id="gc" >    
  9. <ul>ul>    
  10. div>   

css代码

XML/HTML-Code复制内容到剪贴板
  1. #gc{    
  2. Breite: 400px;    
  3. Höhe: 400px;    
  4. Hintergrund: transparent;    
  5. Rand: 100px automatisch;    
  6. Farbe: #fff;    
  7. Schriftgröße: 18px;    
  8. Überlauf: versteckt;    
  9. Position: relativ;    
  10. }    
  11. #gc ul{    
  12. Position: absolut;    
  13. oben: 200px;    
  14. }    
  15. #gc ul li{    
  16. text-align: center;    
  17. Höhe: 40px;    
  18. Zeilenhöhe: 40px;    
  19. }    
  20. .songs_cnt{    
  21. float: links;    
  22. Rand oben: 200px;    
  23. Position: relativ;    
  24. }    
  25. .songs_list{    
  26. Hintergrundfarbe: rgba(0,0,0,.2);    
  27. Rahmenradius: 5px;    
  28. float: links;    
  29. Breite: 250px;    
  30. Auffüllung: 15px;    
  31. Rand links: -280px;    
  32. }    
  33. .songs_list li{    
  34. Höhe: 40px;    
  35. Zeilenhöhe: 40px;    
  36. Schriftgröße: 16px;    
  37. Farbe: rgba(255,255,255,.8);    
  38. Cursor: Zeiger;    
  39. }    
  40. .songs_list li:hover{    
  41. Schriftgröße: 20px;    
  42. Farbe: rgba(255,23,140,.6);    
  43. }    
  44. .sel_song{    
  45. Position: absolut;    
  46. oben: 50 %;    
  47. Breite: 40px;    
  48. Höhe: 80px;    
  49. margin-top: -40px;    
  50. Schriftgröße: 16px;    
  51. text-align: center;    
  52. Hintergrundfarbe: transparent;    
  53. Rahmen: 1 Pixel durchgezogen #2DCB70;    
  54. Schriftstärke: fett;    
  55. Cursor: Zeiger;    
  56. Grenzradius: 3px;    
  57. Schriftfamilie: serifenlos;    
  58. Übergang:alle 2er;    
  59. -moz-transition:all 2s;    
  60. -webkit-transition:all 2s;    
  61. -o-transition:all 2s;    
  62. }    
  63. .sel_song:hover{    
  64. Farbe: #fff;    
  65. Hintergrundfarbe: #2DCB70;    
  66. }    
  67. .songs_list li.active{    
  68. Farbe: #f00;    
  69. }   

js代码

XML/HTML-Code复制内容到剪贴板
  1. $('.songs_list li:nth-child(1)').addClass('active');    
  2. $('.songs_cnt').mouseenter(function () {    
  3. var e=event||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标签实现歌词同步的效果今天也就到这里了.更多信息请登录脚本之家网站了解更多!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

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.

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

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.

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

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

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

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

Klipsch stellt die Flaggschiff-Soundbar Flexus Core 300 mit 8K-Unterstützung, 12 Lautsprechern und Raumkorrektur vor Klipsch stellt die Flaggschiff-Soundbar Flexus Core 300 mit 8K-Unterstützung, 12 Lautsprechern und Raumkorrektur vor Sep 05, 2024 am 10:16 AM

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

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

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

Text in HTML verschieben Text in HTML verschieben Sep 04, 2024 pm 04:45 PM

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.

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

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

See all articles