Android Crear lista de reproducción

¿Alguien sabe cómo agregar listas de reproducción a Android en código?

Yo tipo de conseguir que tengo que insertarlo en la resolución de contenido, pero tengo que poner la canción en la identificación o tengo que poner todos los datos de la canción en?

He estado buscando el código de la muestra pero no he encontrado todavía.

EDIT: Encontrar una respuesta aquí es cómo lo hago:

public static void addToPlaylist(ContentResolver resolver, int audioId) { String[] cols = new String[] { "count(*)" }; Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", YOUR_PLAYLIST_ID); Cursor cur = resolver.query(uri, cols, null, null, null); cur.moveToFirst(); final int base = cur.getInt(0); cur.close(); ContentValues values = new ContentValues(); values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, Integer.valueOf(base + audioId)); values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, audioId); resolver.insert(uri, values); } public static void removeFromPlaylist(ContentResolver resolver, int audioId) { Log.v("made it to add",""+audioId); String[] cols = new String[] { "count(*)" }; Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", YOUR_PLAYLIST_ID); Cursor cur = resolver.query(uri, cols, null, null, null); cur.moveToFirst(); final int base = cur.getInt(0); cur.close(); ContentValues values = new ContentValues(); resolver.delete(uri, MediaStore.Audio.Playlists.Members.AUDIO_ID +" = "+audioId, null); } 

Para obtener la pregunta de "no contestada" he pegado el código del OP aquí:

  public static void addToPlaylist(ContentResolver resolver, int audioId) { String[] cols = new String[] { "count(*)" }; Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", YOUR_PLAYLIST_ID); Cursor cur = resolver.query(uri, cols, null, null, null); cur.moveToFirst(); final int base = cur.getInt(0); cur.close(); ContentValues values = new ContentValues(); values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, Integer.valueOf(base + audioId)); values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, audioId); resolver.insert(uri, values); } public static void removeFromPlaylist(ContentResolver resolver, int audioId) { Log.v("made it to add",""+audioId); String[] cols = new String[] { "count(*)" }; Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", YOUR_PLAYLIST_ID); Cursor cur = resolver.query(uri, cols, null, null, null); cur.moveToFirst(); final int base = cur.getInt(0); cur.close(); ContentValues values = new ContentValues(); resolver.delete(uri, MediaStore.Audio.Playlists.Members.AUDIO_ID +" = "+audioId, null); } 

Para responder al comentario de Jaroslav Záruba, el código es mejor con el PLAY_ORDER de la pista añadida establecida de la siguiente manera:

 cur.moveToLast(); final int base = cur.getInt(cur.getColumnIndex(Playlists.Members.PLAY_ORDER)); cur.close(); ContentValues values = new ContentValues(); values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, Integer.valueOf(base + 1)); 

Dos cosas importantes cambian: Utilizamos el último elemento de la lista de reproducción (cur.moveToLast ()) y añadimos 1 a su valor PLAY_ORDER para determinar PLAY_ORDER de la nueva pista. El punto es tener pistas sucesivas en la lista de reproducción.

También puede añadir 10, por ejemplo, para que pueda insertar pistas antes o después de su nueva pista. También cambié la forma en que obtenemos el id de pista. De hecho, no queremos tener ningún problema para obtener datos erróneos, así que especificamos la columna que queremos.

Este es un código corregido que elimina la canción de Playlist:

 public static void removeFromPlaylist(ContentResolver resolver, int audioId) { Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", YOUR_PLAYLIST_ID); resolver.delete(uri, MediaStore.Audio.Playlists.Members._ID +" = "+audioId, null); } 

Utilice esto el código sí mismo se explica por sí mismo. Se agregará canción con id = songID dado id = songID a la lista de reproducción con nombre playlistName

Si la lista de reproducción ya existe, se agregará a la existente o se creará nueva y luego se agregará canción a ella

  /** * This function add song with id songID to playlist playlistName * if playlist does exist it will add to exiixting one or it will create new * * @param playlistName * @param songID */ private void addToPlaylist(String playlistName, int songID) { //Vibrate device Utils.vibrate(getApplicationContext()); //get all playlists Cursor playListCursor = AppController.getGlobalContentResolvere().query( MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, new String[]{"*"}, null, null, null); long playlistId = 0; playListCursor.moveToFirst(); do { //check if selected playlsit already exist if (playListCursor.getString(playListCursor .getColumnIndex(MediaStore.Audio.Playlists.NAME)). equalsIgnoreCase(playlistName)) { playlistId = playListCursor.getLong(playListCursor .getColumnIndex(MediaStore.Audio.Playlists._ID)); break; } } while (playListCursor.moveToNext()); //Playlist doesnt exist creating new with given name if (playlistId == 0) { Log.d(TAG, "CREATING PLAYLIST: " + playlistName); ContentValues playlisrContentValue = new ContentValues(); //Add name playlisrContentValue.put(MediaStore.Audio.Playlists.NAME, playlistName); //update modified value playlisrContentValue.put(MediaStore.Audio.Playlists.DATE_MODIFIED, System.currentTimeMillis()); Uri playlistURl = AppController.getGlobalContentResolvere().insert( MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI, playlisrContentValue); Log.d(TAG, "Added PlayLIst: " + playlistURl); } else { //Playlist alreay exist add to playlist String[] cols = new String[]{ "count(*)" }; Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId); Cursor favListCursor = AppController.getGlobalContentResolvere().query(uri, cols, null, null, null); favListCursor.moveToFirst(); final int base = favListCursor.getInt(0); //playlist updated delete older playlist art so that we can create new Toast.makeText(AudioPlayerActivity.this, "deleted old file" + new File(AppContants.PLAY_LIST_DIR + playlistId + ".png").delete(), Toast.LENGTH_SHORT).show(); favListCursor.close(); //add song to last ContentValues values = new ContentValues(); values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, base + songID); values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, songID); AppController.getGlobalContentResolvere().insert(uri, values); //Debug purpose Toast.makeText(AudioPlayerActivity.this, "Added to Favourite list " + CenterRepository.getInstance().getAudioCollection().getSongAt(AppConfig.SONG_NUMBER).getTitle() , Toast.LENGTH_SHORT).show(); } } 
  • ¿Cómo acceder a sms tiempo que he recibido en la bandeja de entrada?
  • ¿Cómo encontrar y recopilar toda la información disponible en un contacto de dar en cualquier teléfono de Android?
  • ¿Cómo probar una actividad que utiliza un ContentProvider sin afectar la base de datos de producción?
  • Android: Cómo escuchar cambios de contacto como WhatsApp
  • ¿Es posible reemplazar el MediaStore con un doble de prueba usando robolectric?
  • Android - Obtención de la lista de contactos con direcciones de calle, pero no con valores bajos como Skype, donde la dirección es sólo una ciudad y un estado
  • ¿Cómo especifica la aplicación del proveedor de contenido los permisos que necesitan las aplicaciones de los clientes para acceder a los datos del proveedor?
  • Uso de ContentResolver en lugar de ContentProviderClient en SyncAdapter
  • El proveedor de contactos de Android sólo obtiene contactos telefónicos con todos los correos electrónicos
  • ¿Para qué se utiliza cursor.setNotificationUri ()?
  • Insertar en varias tablas con ContentProvider
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.