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