2 votos

Obtenga el tiempo de reproducción de medios usando ADB

Estoy trabajando con C# script para controlar los medios del dispositivo Android. He sido capaz de comprobar y ajustar el volumen así como enviar comandos de pausa, reproducción, salto, etc. para aplicaciones multimedia como Spotify o YouTube

Sin embargo, hay algo que no he podido averiguar: cómo obtener la hora actual de los medios. Por ejemplo, si Spotify está reproduciendo una canción de dos minutos, y actualmente está en 1:16, me gustaría obtener esa información. Hasta ahora, no he podido encontrar documentación sobre cómo hacerlo.

¿Hay alguna forma de obtener la hora actual de los medios que se están reproduciendo? Además, ¿hay una manera de obtener el tiempo total de los medios de comunicación?

Gracias

3voto

Firelord Puntos 161

Emite este comando:

adb shell dumpsys media_session | grep "state=PlaybackState"      # assuming that only one media player or alike app is playing audio, such as Spotify.

Salida de demostración:

state=PlaybackState {state=2, **position=44912**, buffered position=0, speed=0.0, updated=14800717, actions=142132, custom actions=\[\], active item id=-1, error=null}

Lo más destacado position muestra la posición del medio en reproducción en milisegundos.

Temas :

1) El posición no refleja la posición de los medios de comunicación en tiempo real, y se actualiza en estas condiciones (basado en mi observación) solamente:

  • cuando el medio se reproduce desde el estado fresco o desde el estado de pausa
  • cuando el medio está en pausa
  • cuando el usuario cambia manualmente la posición del medio (por ejemplo, arrastrando el deslizador de posición)

2) No hay una posición máxima de medios disponible, así que esto es todo lo que se obtiene.


Puedes intentar pausar brevemente y luego reproducir el medio usando el comando adb para actualizar el posición para reflejar eso en el script. Sería un trastorno, pero funcionaría.

Consejo: puede obtener meta información, sobre todo la descripción de los medios de reproducción de la salida de adb shell dumpsys media_session también.

0 votos

La forma esperada de rastrear de forma fiable la posición de los medios de comunicación para ver el estado y el reloj. Cuando el estado transita de PAUSED (2) a PLAYING (3), capture la posición e increméntela en 1 segundo cada segundo. Cuando transite a PAUSED, resincronice su posición.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X