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:

  • ContentDescription = "@ null" una mala idea?
  • AsyncTask "Sólo el subproceso original que creó una jerarquía de vista puede tocar sus vistas."
  • ¿Es correcto llamar a Service.startService () desde Service.onBind ()?
  • Agrupar filas similares en listview en función de su contenido
  • Establecer el agente de usuario en httpclient de Java y permitir redireccionamientos a true
  • GCM: java.lang.noclassdeffounderror: com.google.android.gcm.GCMRegistrar
  • 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.

  • Cómo obtener datos de usuario después de iniciar sesión con LinkedIn
  • Cómo crear envoltorios xml reutilizables para los archivos de diseño de Android
  • Barra de Acción de Android UnityPlayerActivity
  • Construyendo módulos Android separados con dexpreopt deshabilitado
  • No se pueden agregar varios fragmentos a LinearLayout
  • Aplicación dentro de una aplicación
  • 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.