Android studio录屏按钮不能用怎么办

众所周知,Android studio具备录制手机屏幕的功能:

点击红框中的按钮即可弹出录屏对话框,设置之后便可录制手机屏幕,可我的studio显示却是这样的效果:


红框中按钮是灰色的,不可用。

设备列表已经被我用青色的框,标记起来了,可以清楚的看到现在连接的是一部华为 honor V8手机(HUAWEI KNT-AL20 Android 6.0 API 23)

原因就出在手机上:


再看这张图,连接华为手机不能录屏,我便打开了我的genymotion,如青框中显示Unknown Custom Phone - 5.0.0 - API 21 - 768×1280 Android 5.0 API 21

令人兴奋的是红框中的录屏按钮是可用的,明显不是灰色的。

我兴奋的点击浅黄色录屏按钮 :


看来是有戏啊!

点击Start Recording按钮:


再点击OK


这时候其实就能感觉不对劲了,还没开始录呢,怎么视频都保存好了呢?

找到该视频文件:


发现该视频文件大小是 0 字节,空欢喜一场。

于是我又打开了genymotion 中的一个模拟器:


继续点击录制:


点击Start Recording:


看来真的在录屏,停止录屏,保存文件,查看录制视频。


皇天不负有心人啊!终于成功了。

当你的Android studio 录屏按钮不能用时,可以换个手机试试。原因很可能是你手机的问题,我的studio就是连接华为honor V8的不能录屏,但是连接oppo R9和xiaomi MI 5都可以录屏。

华为 honor V8手机其实自带录屏功能,长按【电源键】+【音量上键】即可开启【屏幕录制】

那么肯定有人说,我的不是这种情况或者我没有那么多手机。


不要着急,下面说一个通用的方法:

用自己的手机下载 : 录屏大师



亲测,非常好用,无需 root !很简单这里就不介绍怎么使用了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Android Studio中实现录屏功能,你可以使用MediaProjection API。下面是一些基本步骤来实现它: 1. 在AndroidManifest.xml文件中添加以下权限: ``` <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> ``` 2. 创建一个Service类来处理录屏逻辑。在这个Service中,你需要初始化MediaProjectionManager和MediaRecorder,并获取用户的屏幕和音频权限。下面是一个简单的实现示例: ```java public class ScreenRecordService extends Service { private MediaProjectionManager mediaProjectionManager; private MediaProjection mediaProjection; private VirtualDisplay virtualDisplay; private MediaRecorder mediaRecorder; @Override public IBinder onBind(Intent intent) { return null; } @Override public int onStartCommand(Intent intent, int flags, int startId) { mediaProjectionManager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE); mediaRecorder = new MediaRecorder(); initRecorder(); startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), REQUEST_CODE_CAPTURE); return START_NOT_STICKY; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_CAPTURE) { mediaProjection = mediaProjectionManager.getMediaProjection(resultCode, data); virtualDisplay = createVirtualDisplay(); mediaRecorder.start(); } } private void initRecorder() { mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); mediaRecorder.setVideoEncodingBitRate(512 * 1000); mediaRecorder.setVideoFrameRate(30); mediaRecorder.setVideoSize(DISPLAY_WIDTH, DISPLAY_HEIGHT); mediaRecorder.setOutputFile(getFilePath()); } private VirtualDisplay createVirtualDisplay() { return mediaProjection.createVirtualDisplay("MainActivity", DISPLAY_WIDTH, DISPLAY_HEIGHT, screenDensity, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, mediaRecorder.getSurface(), null /*Callbacks*/, null /*Handler*/); } private String getFilePath() { // 返回你想要保存录屏视频的文件路径 } } ``` 3. 在你的MainActivity(或其他需要录屏的Activity)中,启动该Service: ```java Intent intent = new Intent(this, ScreenRecordService.class); startService(intent); ``` 这只是一个基本的示例,你可能还需要处理一些其他的逻辑,如停止录屏、处理权限请求和错误处理等。希望对你有所帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值