¿Es posible saltar la pista de una aplicación de Android?
Estoy pensando en hacer una aplicación para Android 2.1 que cambia la canción cada minuto (a través de lo que espero que existe en Android, "siguiente") para la aplicación utilizando el dispositivo de audio atm.
Así que si ya tengo Spotify funcionando en segundo plano, tocando música, ¿puedo cambiar mi programa a la siguiente pista?
- Suscripción móvil multiplataforma (Android + iOS)
- ¿Cuál es la acción correcta de Spotify para un filtro de intenciones ahora en reproducción?
- ¿Cómo es posible saber lo que Spotify está reproduciendo desde una aplicación externa de Android?
- Integración de la biblioteca de Spotify Android
- Spotify intención en android?
Déjame saber si no estaba claro acerca de nada. ¡Gracias por adelantado!
- ¿Existe alguna lib para libspotify 12 para android java?
- Android spotify ERROR separar el hilo con tramas interp (count = 28)
- Cómo actualizar Token de acceso en Spotify SDK para Android?
- API de Spotify: INVALID_APP_ID
- Cómo reproducir automáticamente la lista de reproducción en la aplicación de Spotify para Android
- ¿Controla la reproducción de la aplicación Spotify desde otra aplicación de Android?
- Manejo de Spotify "metadatachanged" transmitido en Android
- Error de inicio de sesión de Spotify INVALID_CLIENT: redireccionamiento no válido URI android
No hay ninguna API universal de transporte de audio para aplicaciones de música, por lo que necesitaría ver si las aplicaciones de música que está orientando exponen públicamente enlaces de servicio o intentos. Si no es así, no podrá hacer esto.
Sé que esta es una pregunta un poco vieja, pero me tomó algo de tiempo buscando algo más que lo que se menciona aquí.
Hay una solución alternativa: acción de botón de medios de difusión. Hay una captura – el receptor puede reconocer si la difusión era del sistema o de otra aplicación, así que pueden pasar por alto las transmisiones del non-system.
Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON); synchronized (this) { i.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT)); sendOrderedBroadcast(i, null); i.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT)); sendOrderedBroadcast(i, null); }
Acaba de publicar una respuesta relevante aquí
El uso del método dispatchMediaKeyEvent () de AudioManager con un KeyEvent definido funcionó para mí utilizando el SDK más reciente.
El widget de pantalla de inicio de música del sistema envía esta intención para el reproductor de música incorporado:
final ComponentName serviceName = new ComponentName(context, MediaPlaybackService.class); intent = new Intent(MediaPlaybackService.NEXT_ACTION); intent.setComponent(serviceName); pendingIntent = PendingIntent.getService(context, 0 /* no requestCode */, intent, 0 /* no flags */); views.setOnClickPendingIntent(R.id.control_next, pendingIntent);
Pero parece que esto podría tomar algo de hackery para implementar paquetes externos en la aplicación de música en sí porque el MediaPlaybackService sólo acepta Intents explícito y no es accesible desde el exterior. Este hilo parece indicar que es posible con un poco de hackery, sin embargo.
Pero incluso entonces, como dijo Roman, no todos los reproductores de música respetarán esa Intención. Tendrás que comprobar con Spotify / Pandora / Last.fm ellos mismos y ver si tienen alguna intención disponible para obligar así.
- Android: forma segura de ocultar navegación spinner en ActionBar?
- fragment_display_message: Mi primer error en la aplicación para Android