запись экрана не работает в эмуляторе

Начиная с 4.4 KitKat, в Android есть утилита screenrecord для записи экрана Android-устройства.

Если я подключаю физическое устройство с помощью утилиты adb через USB, я могу сделать следующее:

adb shell screenrecord /sdcard/sample.mp4
adb pull /sdcard/sample.mp4

Но если я сделаю это для эмулятора Android, я получу пустой файл sample.mp4.

adb shell screenrecord /sdcard/sample.mp4
adb shell ls -l /sdcard/sample.mp4
-rw-rw---- root     sdcard_r        0 2016-06-18 05:37 sample.mp4

Если я выполняю запись экрана непосредственно в корневой консоли в эмуляторе, я вижу следующее:

root@flo:/system/bin # ./screenrecord /sdcard/sample.mp4                       
[1] + Stopped (signal)     ./screenrecord /sdcard/sample.mp4 
root@flo:/system/bin # 
[1] + Illegal instruction  ./screenrecord /sdcard/sample.mp4 

Почему запись экрана не работает для эмулятора?


person Out of Rain    schedule 20.06.2016    source источник
comment
Ошибка AOSP 61682: запись экрана не работает с эмулятором, code.google. com/p/android/issues/detail?id=61682 , но вы можете проголосовать за него   -  person Kaskasi    schedule 03.02.2017


Ответы (2)


Запись экрана использует MediaCodec API. https://developer.android.com/reference/android/media/MediaCodec.html

Если быть точным, Screenrecord напрямую вызывает собственный интерфейс MediaCodec.

Насколько мне известно, ни один эмулятор пока не поддерживает MediaCodec. Все они поддерживают интерфейс более высокого уровня MediaPlayer https://developer.android.com/reference/android/media/MediaPlayer.html.

person Le Yang    schedule 21.06.2016

Запись экрана работает с Android Emulator v27.0.2.

Я протестировал его с образом Oreo x86 with Google Play, но он должен работать с любым образом KitKat+.

person sagis    schedule 20.12.2017