Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo usar VB para reproducir letras de LRC

Cómo usar VB para reproducir letras de LRC

Principios de programación

Para lograr una visualización sincronizada de letras y audio y permitir que los archivos de audio se reproduzcan automáticamente, primero debemos descargar archivos de audio (en este artículo se utiliza MP3 como ejemplo). y archivos de letras (formato LRC), luego use VB para crear un reproductor de audio simple para lograr una reproducción sincrónica de audio y letras, y finalmente use las herramientas WinRar o VB-PowerWrap para encapsular archivos de audio y letras y reproducirlos automáticamente.

Análisis de programación

1. Principio de sincronización de letras

La extensión del archivo de letras de Qianqianjingting es LRC y las letras se muestran en unidades de oración. El archivo contiene el contenido de la letra y el tiempo de reproducción de audio cuando se muestra la letra. La letra aparece al final y el tiempo aparece primero. El tiempo se coloca entre corchetes. Durante la reproducción, el tiempo de reproducción correspondiente a la posición de reproducción se obtiene en tiempo real, y la letra correspondiente al momento actual se encuentra en el archivo de letras y se muestra. Este es el principio de visualización sincrónica del reproductor Qianqianjingting. En una canción, las letras repetidas corresponderán a dos o más tiempos de reproducción de audio, como se muestra en la Figura 1. El formato del archivo de letras es esencialmente un formato de texto. Por lo tanto, podemos usar el Bloc de notas para editar las letras. Si el archivo de letras descargado de Internet no se puede sincronizar con el audio cuando se reproduce, entonces podemos modificar el tiempo en la introducción de la canción. Durante el tiempo de música, puede agregar cierta información, como el nombre del álbum, el nombre del compositor, el nombre del cantante, etc.

Figura 1 Archivo de letras

2. Implementación de la función de reproducción

Hay muchas formas de reproducir archivos de audio. Este artículo utiliza el control "Microsoft MultiMedia Control" (. MCI32.OCX) Implementación, antes de llamar al control Multimedia MCI, es necesario ejecutar el comando de menú "Proyecto\Componentes", seleccionar la casilla frente a "Microsoft Multimedia Controls", confirmar y regresar, el icono de control Multimedia aparecerá en el caja de herramientas, agregue el control Multimedia a En el formulario, asígnele el nombre Mci.

1. Algunos métodos y propiedades del control MCI son los siguientes:

Mci.FileName = Mp3 'Nombre del archivo

Mci.Command = "Abrir" 'Abrir

Mci.Command = "Reproducir" 'Reproducir

Mci.Command = "Detener" 'Detener

Mci.Command = "Cerrar" 'Cerrar

Mci.Position: Tiempo de reproducción actual (milisegundos)

Mci.Length: Tiempo total de reproducción (milisegundos)

2. p>

Coloque los archivos de audio y los archivos de letras en la misma carpeta del programa, y ​​ambos se denominan Canción (las extensiones son MP3 y LRC respectivamente. Cuando el programa se esté ejecutando, copie los archivos de audio a la carpeta temporal de). Windows y reprodúcelo.

La obtención de la carpeta temporal de Windows se implementa a través de la función API GetTempPath. El método de programación y el código principal son los siguientes:

Función WinTempDir() As String

Dim Tmp As String

Atenuar tP como cadena

Tmp = Espacio$(255)

Llamar a GetTempPath(Len(Tmp), Tmp)

tP = Izquierda( Trim$(Tmp) , Len(Trim$(Tmp)) - 1)

Si es correcto$(tP, 1) lt;gt "\" Entonces

tP = tP; "\"

p>

End If

WinTempDir = tP

End Function

3. p>

Antes de reproducir el archivo de audio, lea la letra en la carpeta actual del archivo en el control del cuadro de lista. Durante la reproducción, la letra se puede extraer y mostrar a través del tiempo de reproducción. El método de programación y el código central para leer. el archivo de letras es el siguiente:

Función OpenLrc()

'Lrc es el nombre del archivo de letras

Abrir Lrc ​​para entrada como #1

Mientras no sea EOF(1)

Entrada de línea n.º 1, S

Si Len(S) gt 0, entonces List1.AddItem S

Wend;

Cerrar #1

Función final

4. Inicialización del programa

Cuando el programa se está ejecutando, obtiene la carpeta actual y el Carpeta temporal de Windows, completa la copia del archivo de audio, lee la letra, elimina la carpeta del archivo actual e inicia la reproducción de audio. El método de programación y el código principal son los siguientes:

Private Sub Form_Load().

Pa = App.Path

tPa = WinTempDir

tMp3 = Pa "Canción.mp3"

Mp3 = tPa "Canción. mp3"

Lrc = Pa "Song.lrc"

FileCopy tMp3, Mp3

Llamar a OpenLrc 'Letras

Kill tMp3: Kill Lrc

'Los archivos de audio y letras eliminados anteriormente, durante la depuración del programa, esta función debe desactivarse

Mci.FileName = Mp3

Mci.Command = "Open"

Mci.Command = "Play"

End Sub

5. Visualización sincrónica de letras

Durante la reproducción de audio, obtenga el tiempo de reproducción de audio actual (MM: SS, nivel de segundos) a través del control del temporizador) y luego busque la letra correspondiente al tiempo actual en el cuadro de lista. Si la encuentra, se mostrará la letra. El código es el siguiente:

'Convertir formato de tiempo de reproducción

Función tFormat(iPos) como cadena

M = iPos / 1000 \ 60 'minutos

S = iPos / 1000 Mod 60' segundos

Si M lt;

Entonces Ret = "0"

Ret = Ret CStr(M) ":"

Si S lt 10 Entonces Ret = Ret "0"

Ret; = Ret CStr(S)

tFormat = Ret

Función final

'Buscar posición de letra

Función ListIdx(ItemTxt) como entero

For I = 0 To List1.ListCount - 1

P = InStr(1, List1.List(I), ItemTxt)

If P gt; 0 Entonces

ListIdx = I: Salir de la función

Finalizar si

Siguiente

ListIdx = -1

Función de fin

'Mostrar letras simultáneamente

Private Sub Timer1_Timer()

SetFormTop Me, True 'Subir el formulario

Pos = tFormat (Mci.Position)

Label3.Caption = Pos

Idx = ListIdx(List1, Pos)

Si Idx lt;gt; Entonces

p>

p>

P = InStrRev(List1.List(Idx), "]", -1)

GeCi = Mid$(List1.List(Idx), P 1)

Si GeCi = "" Entonces

Label2.Caption = "Música..."

De lo contrario

Label2.Caption = GeCi

End If

End If

End Sub

6. Configuración del formulario

La forma del simple El reproductor diseñado en este artículo está en modo de diálogo (BorderStyle=3), no tiene barra de título, no se muestra en la barra de tareas y no se puede mover, por lo que el formulario sin barra de título debe moverse y colocarse en encima de otras formas en tiempo real.

El método de programación y el código principal son los siguientes:

'Form to top

Función SetFormTop(iForm As Form, iFlag As Boolean)

If iFlag = True Luego

p>

SetWindowPos iForm.hwnd, -1, 0, 0, 0, 0, 3

Si no

SetWindowPos iForm.hwnd, -2, 0, 0, 0, 0, 3

End If

Fin de función

'Preparar para mover el formulario

Private Sub Frame1_MouseDown (parámetros omitidos)

p>

Si botón = 1 entonces

mX = X: mY = Y: mV = 1

Fin Si

End Sub

'Move Frame

Sub Frame privado1_MouseMove (parámetros omitidos)

Si Button = 1 y mV = 1 Entonces

Me.Left = Me. Left /p>

Sub Frame1_MouseUp privado (parámetros omitidos)

mV = 0

End Sub

7. Compile y ejecute

Compile el programa y ejecútelo. Puede ver que mientras se reproduce el audio, las letras se muestran simultáneamente, como se muestra en la Figura 2.

Figura 2 Programa en ejecución

3. Implementación de encapsulación

Lo anterior ha logrado la visualización simultánea de la reproducción del archivo de audio y la letra, pero se reproduce el mismo archivo. Los archivos de audio de la carpeta utilizan los archivos de letras de la misma carpeta, realizando la función de visualización y reproducción sincrónica de Qianqianjingting. Pero, ¿cómo encapsular archivos de audio y letras en un paquete ejecutable? Cuando se está ejecutando el paquete ejecutable, ¿cómo ejecutar automáticamente el reproductor de audio del paquete para leer las letras del paquete y reproducir los archivos de audio del paquete?

1. Utilice WinRAR

WinRAR puede comprimir varios archivos en un archivo ejecutable de forma autoextraíble y puede configurarse para que ejecute automáticamente uno de los programas después de la descompresión. es lo que hacen muchos programas de instalación). Usando este método, podemos encapsular el reproductor, los archivos de audio y los archivos de letras diseñados anteriormente en un paquete ejecutable. Cuando se ejecuta el paquete ejecutable, el reproductor, los archivos de audio y los archivos de letras del paquete se liberarán automáticamente y el reproductor comenzará a reproducirse automáticamente. Pero esto tiene tres desventajas: primero, los archivos de audio y letras se pueden ver después de la descompresión; segundo, el control de reproducción MCI utilizado en el programa no se puede registrar automáticamente; tercero, el paquete comprimido producido por WinRar tiene un mensaje al descomprimirlo; al usuario para descomprimirlo y confirmarlo.

2. Utilice VB-PowerWrap para implementar

VB-PowerWrap es una excelente herramienta de producción de programas de instalación para publicar programas VB. Escanea automáticamente un archivo de proyecto VB y convierte automáticamente el proyecto. Los archivos requeridos se agregan al paquete, y se puede agregar cualquier otro tipo de archivo al paquete, y se crea un paquete ejecutable que contiene todos los archivos necesarios y los archivos relacionados para que el programador los publique. VB-PowerWrap utiliza un módulo de súper compresión para comprimir los archivos de la biblioteca dinámica utilizados, de modo que se pueda crear el archivo EXE más pequeño. Este software se puede utilizar en las versiones VB4, 5 y 6.

Cuando se ejecuta el paquete ejecutable empaquetado con VB-PowerWrap, todos los archivos que contiene se liberan primero, la biblioteca de tiempo de ejecución de VB y los controles de terceros se cargan automáticamente en la memoria y los archivos liberados se eliminan. desde el disco y luego ejecute automáticamente el programa de ejecución en el proyecto. En el reproductor diseñado en este artículo, los archivos de audio se copian automáticamente a la carpeta temporal y se reproducen, y los archivos de audio y los archivos de letras se eliminan al mismo tiempo. Por lo tanto, después de ejecutar el paquete encapsulado con VB-PowerWrap, el archivo. Los archivos de audio se dejan en el disco. Lo que se descarga son solo los archivos de audio en la carpeta temporal, por lo que parece que se está ejecutando un archivo independiente que puede reproducir música. Los pasos para encapsular con VB-PowerWrap son los siguientes:

1), instalar y ejecutar VB-PowerWrap

2), hacer clic en el botón del proyecto VB en la interfaz, en el; cuadro de diálogo emergente, haga clic en el icono en la esquina superior derecha, seleccione el nombre del archivo del programa ejecutable que acaba de compilar y ábralo, luego seleccione el nombre del archivo del proyecto y ábralo ahora podrá ver la lista de archivos que contiene el programa; Depende de lo que haya compilado, seleccione el VB que está utilizando en la versión inferior izquierda y luego haga clic en el botón Finalizar para regresar.

3) Agregue archivos de audio y archivos de letras

Complete el; adición de archivos de audio y archivos de letras a través del botón Agregar en la interfaz del software, como se muestra en la Figura 3.

Figura 3 Paquete del programa

4), crear paquete comprimido

Después de vincular el proyecto y agregar otros archivos, puede hacer clic en el botón Crear en la interfaz del software. , se generará un paquete de ejecución independiente en unos segundos. En este punto, el programa ejecutable recién creado puede ejecutarse de forma independiente en cualquier otra plataforma de Windows.

Postscript de programación

Los proyectos y programas de VB creados en este artículo son universales. Lo que tienes que hacer ahora es descargar tus archivos de canciones y letras favoritos de Internet y usarlos. ellos como Canción. Es muy fácil poner el nombre del archivo en la misma carpeta del proyecto y luego empaquetarlo a través de la herramienta VB-PowerWrap, formando así un archivo de audio que se puede reproducir automáticamente.

Vale la pena mencionar que su programa se simplifica bastante después de ser encapsulado por VB-PowerWrap. Descarga del código fuente/down/200629/scode.rar