Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo filtrar sólo los archivos multimedia relevantes en Android?

Estoy tratando de obtener todos los archivos de música en mi teléfono:

Para esto estoy usando:

  • Creación de Player Baking Runtime Android Forever Cargando
  • Ejecutar / instalar / depurar aplicaciones Android a través de Wi-Fi?
  • Los puntos de interrupción de SampleSyncAdapter no funcionan
  • Dibujar texto de varias líneas en Lienzo
  • Creación de una tabla / cuadrícula con una columna congelada y encabezados congelados
  • No se puede bloquear el evento de clic de botón de inicio de la barra de herramientas
  • String[] STAR = {"*"}; Uri allExternalSongUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0"; Cursor cursor = getContentResolver().query(allExternalSongUri, STAR, selection, null, null); if(cursor != null){ if(cursor.moveToFirst()){ do { String songName = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)); Log.i("name", songName); } while (cursor.moveToNext()); } cursor.close(); } 

    Pero encima del código, aparte de conseguir archivos de música, también está buscando algunos archivos innecesarios adicionales como * sound_screen_on.mp3 * (que es instalado y usado por alguna otra aplicación).

    El problema es mi reproductor de música androide nativo no lista y reproduce estos archivos innecesarios.

    ¿Cómo puedo filtrar archivos como estos.

  • ¿De dónde hace el meta de android.max_aspect hacer la diferencia?
  • Android: licencias de aplicaciones, protección contra copias
  • Android Studio - No se puede abrir el archivo PNG
  • Escala y Traducir animación
  • Android consigue el ancho de la vista creada mediante programación
  • Cómo obtener la versión SDK de Android de un dispositivo desde la línea de comandos
  • 4 Solutions collect form web for “¿Cómo filtrar sólo los archivos multimedia relevantes en Android?”

    Puede filtrar utilizando MediaStore.Audio.AudioColumns class.That devolverá un montón de valor de archivo de audio y se puede utilizar.

     musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, MediaStore.Audio.Media.DURATION + ">= 60000", null, null); 
    • Filtrar por duración : duración del archivo de audio, en ms
    • Filtrar por Tipo-Música -No-cero si el archivo de audio es música
    • Filtrar por Tipo-RingTone – No es cero si el archivo de audio puede ser un tono de llamada
    • Filtrar por Tipo-Alarma – No es cero si el archivo de audio puede ser una alarma

    Busque más referencia

    Aparte de los métodos anteriores sugeridos por otros, en el caso en que la columna no es fiable de la base de datos, siempre puede utilizar MediaMetadataRetriever para obtener la información que desea después de la primera filtrado de la db.

    http://developer.android.com/reference/android/media/MediaMetadataRetriever.html

    Esto es, por supuesto, más lento que la obtención de información existente de los medios de comunicación db, pero le dará autor / álbum / duración etc otra información y puede hacer como filtro personalizado que puede obtener con la lista de archivos que obtiene de ContentProvider.

    Usando su mismo código, no consigo ningún archivo indeseado.

    Por lo general, los archivos están marcados para ser ignorados, por lo que probablemente el escáner de medios hizo algo mal o el índice no se actualiza en su sistema.

    Los sonidos, imágenes y otros archivos de medios que están destinados a ser utilizados por una aplicación o por el sistema, están marcados para ser ignorados simplemente añadiendo un archivo llamado ".nomedia" en el mismo directorio. Como se puede leer en los documentos del proveedor de MediaStore

    Public static final String MEDIA_IGNORE_FILENAME

    Se agrega en el nivel 9 de la API Nombre del archivo que señala al escáner multimedia para que ignore los medios en el directorio que contiene y sus subdirectorios. Los desarrolladores deben usar esto para evitar que aparezcan gráficos de aplicaciones en la Galería e igualmente evitar que los sonidos y la música de la aplicación aparezcan en la aplicación Música.

    Valor constante: ".nomedia"

    Por lo tanto, además de los consejos de chintan khetiya, que son grandes, probablemente se puede considerar que hay algunos archivos marcados para ser ignorados, que en realidad no se ignoran, y comprobar por ti mismo.

    Simplemente, al iterar el cursor, para cada archivo, solo comprueba si en el mismo directorio hay un archivo llamado como el valor de MediaStore.MEDIA_IGNORE_FILENAME o el codificado .nomedia

    Sólo consigue la música que el _data es más que un cierto valor, por ejemplo 300kb.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.