android-emulator - screenrecord 在模拟器中不起作用

标签 android-emulator screen-recording

从 4.4 KitKat 开始,Android 有一个 shell 实用程序 screenrecord 来记录 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 

为什么 screenrecord 不适用于模拟器?

最佳答案

Screenrecord 使用 MediaCodec API。 https://developer.android.com/reference/android/media/MediaCodec.html

准确的说,Screenrecord直接调用MediaCodec的原生接口(interface)。

据我所知,目前还没有模拟器支持 MediaCodec。它们都支持更高级别的接口(interface) MediaPlayer https://developer.android.com/reference/android/media/MediaPlayer.html .

关于android-emulator - screenrecord 在模拟器中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933605/

相关文章:

android-emulator - Android 汽车模拟器 "no system images installed for this target"

iOS 使用 QuickTime 播放器检测/阻止屏幕录制

python - Ubuntu 中使用 python 的屏幕录像机

Android 屏幕录制操作方法 - 横向录制、录制的视频以全屏与部分屏幕播放

ios - 如何以编程方式在 iOS 中实现带音频的屏幕录制?

android - 如何将图像存储在 SQLite 数据库中

android - 为什么 "adb install (my APK)"触发 "can' t 查找服务 : package"?

android - 无法在 Mac 模拟器上输入 editText

android - 如何为 Android 模拟器设置 Internet 选项?

angular - 如何在 Angular 2+ 应用程序中录制桌面屏幕