¿Cómo comprobar si se está reproduciendo música desde la aplicación de música?
¿Cómo puedo comprobar desde qué aplicación de música se está reproduciendo la música en el dispositivo Android?
Usando AudioManager, podemos comprobar si la música se está reproduciendo o no. Pero no proporciona los detalles de la aplicación de música desde la que se está reproduciendo.
- Aplicación de Android para pausar / reanudar la música de otra aplicación de reproductor de música
- Cómo convertir el volumen a max programmatically en android?
- Estoy buscando una api que proporciona letras para la canción solicitada
- Cómo pausar los reproductores de música en Android?
- La aplicación de Unity detiene la música de fondo
AudioManager am = (AudioManager) this.getSystemService (Context.AUDIO_SERVICE);
am.isMusicActive()
devuelve true si se reproduce música en el dispositivo. Pero quiero el nombre de la aplicación de música de la que se está reproduciendo.
Referencias:
¿Cómo puede comprobar si la música está reproduciendo utilizando un receptor de difusión?
Desarrollo de Android: para saber qué aplicación está reproduciendo música actualmente
Por ejemplo, si reproduzco música del reproductor de Google Music. Entonces tengo que ser capaz de obtener el nombre de la aplicación de música como "Google Music Player".
Cualquier respuesta para esto sería apreciada. ¡Gracias!
- ¿Cómo se utiliza MediaControllerCompat para controlar el reproductor actual?
- Método de lanzamiento de reproductor de audio en Android desde la página web para streaming de medios
- Android: Cómo obtener detalles de audio de un archivo de audio
- ¿Cómo puedo acceder a los códigos de estado de MediaMetadataRetriever.setDataSource (...)?
- Servicio de música matado incluso cuando startForground
- ¿Cómo poner el botón del controlador de medios en la barra de notificación?
- Cómo obtener la imagen del álbum utilizando musicbrainz
- ¿Cómo detener otras aplicaciones que reproducen música de mi actividad actual?
Intente esto para obtener la ruta del archivo de la pista en reproducción:
public Cursor query(Context context, Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder, int limit) { try { ContentResolver resolver = context.getContentResolver(); if (resolver == null) return null; if (limit > 0) uri = uri.buildUpon().appendQueryParameter("limit", "" + limit).build(); return resolver.query(uri, projection, selection, selectionArgs, sortOrder); } catch (UnsupportedOperationException ex) { return null; } } private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String path = intent.getStringExtra("track").replaceAll("'","''"); Cursor c = query(context, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[] { MediaStore.Audio.Media.DATA }, MediaStore.Audio.Media.TITLE + "='" + path + "'", null, null, 0); try { if (c == null || c.getCount() == 0) return; int size = c.getCount(); if (size != 1) return; c.moveToNext(); // Here's the song path String songPath = c.getString(0); Log.d("ROAST_APP", "" + songPath); } finally { if (c != null) c.close(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter iF = new IntentFilter(); iF.addAction("com.android.music.metachanged"); iF.addAction("com.android.music.playstatechanged"); iF.addAction("com.android.music.playbackcomplete"); iF.addAction("com.android.music.queuechanged"); registerReceiver(mReceiver, iF); }
fuentes:
Información de la pista de la música que se está reproduciendo actualmente
Marcador de agujas
- Moondroid Coverflow Desplazarse sólo entre el primer y el último objeto
- RxJava No puede crear el controlador dentro de hilo que no ha llamado Looper.prepare ()