¿Cómo obtener la frecuencia de muestreo y la frecuencia del archivo de música (MP3) en android?
Estoy desarrollando el jugador audio en androide. Así que quiero añadir los detalles de la canción de reproducción, es decir, nombre del artista, duración, velocidad de bits y frecuencia de muestreo. Puedo obtener el nombre del artista y la duración de un archivo de música mediante MediaStore.Audio.Media library
. Pero no puedo conseguir la frecuencia de bits y frecuencia de muestreo del mismo archivo. Entonces, ¿cómo puedo obtener lo mismo?
Como sé, se puede hacer mediante la biblioteca nativa. Pero no sé cómo? ¿Así que cualquier persona puede ayudarme en esto?
- ¿Cómo permitir a los usuarios ver y reproducir canciones en Android a las que ya tienen acceso (por ejemplo, a través de Google Play)?
- Reproductor multimedia reproduciendo varios archivos al mismo tiempo
- Averigüe lo que MediaPlayer está reproduciendo y detenerlo enPause o onStop?
- Android media player - cómo deshabilitar la gama de solicitud? (Rotura de audio roto en Nexus 7)
- Android: ¿Cómo crear un reproductor de vídeo?
- ¿Cómo implementar un reproductor de audio para Android usando MediaPlayer y MediaController?
- ¿Por qué mediaPlayer.seekTo (msec) no actualiza surfaceView cuando mediaPlayer está pausado?
- Precisión de MediaPlayer.seekTo (int msecs)
- Archivo de audio de streaming en Android no funciona un android 2.3
- Android - Múltiple, transmisión simultánea de audio
- Android2.x: Código de error de MediaPlayer (1, -19)
- En Android, controla (reproduce / pausa) reproductor multimedia desde el código externo
- Problemas de almacenamiento intermedio con android.media.MediaPlayer
Puedes aproximarlo dividiendo el tamaño del archivo por la longitud del audio en segundos, por ejemplo, de un M4A AAC codificado aleatorio en mi biblioteca:
File Size: 10.3MB (87013064 bits) Length: 5:16 (316 Seconds) Which gives: 87013064 bits / 316 seconds = 273426.147 bits/sec or ~273kbps Actual Bitrate: 259kbps
Dado que la mayoría de los archivos de audio tienen un conjunto conocido de niveles de velocidad de bits válidos, puede utilizarlo para escalonar la velocidad de bits al nivel adecuado para su visualización.
MediaMetadataRetriever ofrece METADATA_KEY_DURATION que se puede dividir con el tamaño del archivo de bitrate.
Sé que se ha resuelto, pero tengo mucho mejor manera de obtener una respuesta precisa
MediaExtractor mex = new MediaExtractor(); try { mex.setDataSource(path);// the adresss location of the sound on sdcard. } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } MediaFormat mf = mex.getTrackFormat(0); int bitRate = mf.getInteger(MediaFormat.KEY_BIT_RATE); int sampleRate = mf.getInteger(MediaFormat.KEY_SAMPLE_RATE);