Un visor de reproductor / grabador con funcionalidad de búsqueda táctil.
Paso 1. Agregue el repositorio de JitPack a su archivo de compilación
Agréguelo en su build.gradle raíz al final de los repositorios:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Paso 2. Agrega la dependencia
dependencies {
implementation 'com.github.ImnIrdst:iiVisu:Tag'
}
Este armario contiene una aplicación de muestra que muestra cómo utilizar iiVisu.
Grabadora
RecorderVisualizer
no admite el desplazamiento para buscar funciones.
<com.imn.iivisu.RecorderVisualizer
android:id="@+id/visualizer"
android:layout_width="0dp"
android:layout_height="256dp"
app:maxAmp="100"
app:barWidth="3dp"
app:spaceBetweenBar="2dp"
app:loadedBarPrimeColor="@color/primaryLight"
app:backgroundBarPrimeColor="@color/gray"
app:layout_constraintBottom_toTopOf="@id/timeline_text_view"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
binding.visualizer.ampNormalizer = { sqrt(it.toFloat()).toInt() }
recorder.apply {
onStop = { binding.visualizer.clear() }
onAmpListener = {
runOnUiThread {
binding.visualizer.addAmp(it)
}
}
}
Jugador
<com.imn.iivisu.PlayerVisualizer
android:id="@+id/visualizer"
android:layout_width="0dp"
android:layout_height="256dp"
app:barWidth="3dp"
app:spaceBetweenBar="2dp"
app:approximateBarDuration="50"
app:loadedBarPrimeColor="@color/primaryLight"
app:backgroundBarPrimeColor="@color/gray"
app:layout_constraintBottom_toTopOf="@id/timeline_text_view"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
binding.visualizer.apply {
onStartSeeking = { player.pause() }
onSeeking = { binding.timelineTextView.text = it.formatAsTime() }
onFinishedSeeking = { time, isPlayingBefore ->
player.seekTo(time)
if (isPlayingBefore) {
player.resume()
}
}
}
binding.visualizer.ampNormalizer = { sqrt(it.toFloat()).toInt() }
player.onProgress = { time, isPlaying ->
binding.visualizer.updateTime(time.toInt(), isPlaying)
}
-
maxAmp
: Amplificador máximo que esperaba recibir del micrófono. Los amperios con un valor mayor que maxAmp se muestran como una barra de altura completa. Esto se calcula automáticamente en el archivo.PlayerVisualizer
. -
barWidth
: Ancho de cada barra. -
spaceBetweenBar
: Espacio entre cada barra. -
approximateBarDuration
: Define la duración aproximada de cada compás. La duración exacta de cada barra se calcula y almacena en el archivobarDuration
variable. Se usa solo enPlayerVisualizer
.RecorderVisualizer
dibuje una barra para cada amplificador recibido. -
loadedBarPrimeColor
: Define el color de la barra cargada. -
backgroundBarPrimeColor
: Define el color de la barra de fondo (no cargada). -
ampNormalizer
: Recibe un método lambda para normalizar amplificadores. (para una mejor visualización) -
addAmp
: Se utiliza para agregar un amplificador aRecorderVisualizer
y su barra se saca inmediatamente. -
updateTime
: Se utiliza para actualizarPlayerVisualizer
línea de tiempo en la ubicación especificada.isPlaying
param se utiliza para definir el comportamiento deonFinishedSeeking
recuerda. -
onStartSeeking
: Recibe una devolución de llamada para realizar la acción necesaria cuando se inicia la búsqueda. -
onSeeking
: Recibe una llamada a la acción necesaria durante el proceso de búsqueda y contiene la posición de tiempo actual del espectador. -
onFinishedSeeking
: Recibe un mensaje para la acción necesaria al final de la búsqueda y contiene la posición de tiempo del espectador y una variable para decidir si es necesario reanudar el reproductor después de la búsqueda o no.
Licencia
MIT. Consulte el archivo de LICENCIA para obtener más detalles.
.