Остановить воспроизведение мультимедиа через adb

Я тестирую некоторые настройки на телефоне, и, к сожалению, единственный контроль, который у меня есть, - это adb прямо сейчас. Моя проблема в том, что, хотя я могу начать воспроизведение музыкального файла с помощью следующей команды, у меня нет возможности остановить его, чтобы я мог выполнить следующую итерацию.

adb shell am start -a android.intent.action.View -d "file:///sdcard/Music/mediatest.mp3" -n "com.android.music/.MediaPlaybackActivity"

Я не знаю, возможно ли завершить воспроизведение с помощью другой команды adb, но мне это не кажется — я вижу , что нет ни намерений , которые выполняют эту функцию, ни каких-либо действий , направленных на остановку воспроизведения. воспроизведение мультимедиа.

Когда вы запускаете команду, терминал «блокируется» до тех пор, пока песня не закончится, или она выполняется мгновенно, а затем возвращается к приглашению терминала?

Ответы (2)

Используйте KeyEvent для выполнения задания.

adb shell input keyevent 85

85соответствует KEYCODE_MEDIA_PLAY_PAUSE. Другие коды клавиш можно найти здесь или здесь .

В качестве альтернативы, если действие с параметрами «Воспроизведение/Пауза» находится на переднем плане, вы можете сделать следующее:

adb shell input touchscreen tap <X> <Y>

где <X>и <Y>— координаты тапа, который вы бы выполнили для воспроизведения/паузы пальцами. См. мой ответ здесь, чтобы узнать, как их получить (шаги 1 и 2 в разделе «Инструкции для Tasker и Xposed Additions» ).

Или вы можете полностью убить приложение, используя:

adb shell am force-stop <PKG_NAME>

Редактировать

В Kitkat и выше есть команда media, использование которой выглядит так:

adb shell media dispatch KEY

KEYможет быть воспроизведение, пауза, воспроизведение-пауза, отключение звука, гарнитура, остановка, следующий, предыдущий, перемотка назад, запись, быстрая перемотка вперед. ( Источник )

Хотя запуск приложения с нуля и отправка другого местоположения Mp3 в качестве данных также будет несложной задачей.

Я остановил музыкальный проигрыватель, используя команду «top» внутри оболочки adb и уничтожив идентификатор процесса музыкального приложения с доступом суперпользователя (ROOT).

Более подробные инструкции сделают это хорошим ответом.
@Peanut top показывает полное имя пакета, вам не нужны дополнительные объяснения. Использование ключевых событий и отправка остановок мультимедиа — это правильный путь.