屏幕记录在模拟器中不起作用
screenrecord not working in emulator
从 4.4 KitKat 开始,Android 有一个 shell 实用程序屏幕记录来记录 Android 设备屏幕。
如果我通过 USB 将物理设备与 adb 实用程序连接,我可以执行以下操作:
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
如果我直接在模拟器的根控制台中执行 screenrecord,我会看到以下内容:
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
为什么屏幕录制不适用于模拟器?
屏幕录制使用 MediaCodec API。 https://developer.android.com/reference/android/media/MediaCodec.html
准确的说Screenrecord是直接调用了MediaCodec的原生接口
据我所知,目前还没有模拟器支持 MediaCodec。它们都支持更高级别的接口 MediaPlayer https://developer.android.com/reference/android/media/MediaPlayer.html.
屏幕记录正在使用 Android Emulator v27.0.2
。
我已经用 Oreo x86 with Google Play
图片对其进行了测试,但它应该适用于任何 KitKat+ 图片。
从 4.4 KitKat 开始,Android 有一个 shell 实用程序屏幕记录来记录 Android 设备屏幕。
如果我通过 USB 将物理设备与 adb 实用程序连接,我可以执行以下操作:
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
如果我直接在模拟器的根控制台中执行 screenrecord,我会看到以下内容:
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
为什么屏幕录制不适用于模拟器?
屏幕录制使用 MediaCodec API。 https://developer.android.com/reference/android/media/MediaCodec.html
准确的说Screenrecord是直接调用了MediaCodec的原生接口
据我所知,目前还没有模拟器支持 MediaCodec。它们都支持更高级别的接口 MediaPlayer https://developer.android.com/reference/android/media/MediaPlayer.html.
屏幕记录正在使用 Android Emulator v27.0.2
。
我已经用 Oreo x86 with Google Play
图片对其进行了测试,但它应该适用于任何 KitKat+ 图片。