Red de conocimiento informático - Computadora portátil - ¿Cómo grabar letras mientras se muestran las partituras de las letras en Android? El principio está ahí y el código es bastante bueno.

¿Cómo grabar letras mientras se muestran las partituras de las letras en Android? El principio está ahí y el código es bastante bueno.

La letra se muestra sincrónicamente mientras se reproduce la canción. Necesitamos leer cada línea en el archivo de letra anterior y convertirlo en una única entidad de letra, que se usa para mostrar en la pantalla según el progreso de reproducción del reproductor actual y el. hora de inicio de cada línea de letra. Centrar letras resaltadas

Necesitamos leer cada línea en el archivo de letras anterior y convertirlo en una única entidad de letras, que se utiliza para mostrar las letras según el progreso de la reproducción. del reproductor actual y la hora de inicio de cada línea de letra. Resalte la letra en el centro de la pantalla

Necesitamos leer cada línea en el archivo de letra anterior y convertirlo en una única entidad de letra:

El código es el siguiente:

public class LyricObject {

public int starttime; // hora de inicio

public int endtime; / hora de finalización

public int timeline; // hora de la letra única

public String lrc // Letras

}

Basado en el progreso actual del reproductor y la hora de inicio de cada letra, puede obtener el resaltado central de la letra de la pantalla. Inicie otro hilo en el hilo de la interfaz de usuario y vuelva a dibujar la pantalla cada 100 ms mediante la función de devolución de llamada onDraw () para lograr el efecto de animación de letras de desplazamiento suave. El código de MainActivity es el siguiente:

El código es el siguiente:

import java.io.IOException

import android.app.Activity

import android.app.Activity; p>

importar android.media.MediaPlayer;

importar android.net.Uri;

importar android.os.Bundle;

importar android. os.Environment;

importar android.os.Environment;

p>

importar android.os.Handler;

importar android.view.OnSeekBarChangeListener ;

clase pública MainActivity extiende la actividad {

/** Actividad Llamada cuando se creó por primera vez.

*/

LyricView privado lyricView;

MediaPlayer privado mediaPlayer;

botón Botón privado;

SeekBar privado seekBar;

private String mp3Path;

private int INTERVAL=45; //El intervalo entre cada línea de letras

@Override

public void onCreate( Bundle saveInstanceState) {

super.onCreate(savedInstanceState);

//this.requestWindowFeature(Window.FEATURE_NO_TITLE);

//getWindow().setFlags ( WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.main);