标签: screen-recording

如何使用Android Studio录制屏幕

我将手机连接到Android Studio和代码.我想录制我的手机屏幕.我看到了这个,但我的Android Studio中禁用了该按钮.我可以捕捉屏幕,但无法录制.有人可以帮我弄这个吗?

UPDATE

在此输入图像描述

这就是我的Android工作室中的情况.该按钮被禁用

android screen-recording android-studio

66
推荐指数
7
解决办法
6万
查看次数

如何使用Android API记录屏幕并截取屏幕截图?

背景

Android在Kitkat和Lollipop上获得了新的API,用于视频捕获屏幕.您可以通过ADB工具或通过代码(从Lollipop开始)来完成.

自新API发布以来,许多应用程序都使用此功能,允许记录屏幕,微软甚至制作了自己的Google-Now-On-tap竞争对手应用程序.

使用ADB,您可以使用:

adb shell screenrecord /sdcard/video.mp4 
Run Code Online (Sandbox Code Playgroud)

您甚至可以在Android Studio内部执行此操作.

问题

我找不到任何有关如何使用API​​的教程或解释,这在代码中是有意义的.

我发现了什么

我找到的唯一的地方是文件(这里,在"屏幕截图和分享"下),告诉我这个:

Android 5.0允许您使用新的android.media.projection API为您的应用添加屏幕捕获和屏幕共享功能.例如,如果要在视频会议应用中启用屏幕共享,此功能很有用.

createVirtualDisplay()方法允许您的应用程序将主屏幕的内容(默认显示)捕获到Surface对象中,然后您的应用可以通过网络发送该对象.API仅允许捕获非安全屏幕内容,而不是系统音频.要开始屏幕捕获,您的应用必须首先通过使用通过该createScreenCaptureIntent()方法获得的Intent启动屏幕捕获对话框来请求用户的许可.

有关如何使用新API的示例,请参阅示例项目中的MediaProjectionDemo类.

事实是,我找不到任何"MediaProjectionDemo"样本.相反,我发现了"屏幕截图"样本,但我不明白它是如何工作的,因为当我运行它时,我所看到的只是一个闪烁的屏幕,我不认为它将视频保存到一份文件.样本看起来非常错.

问题

如何使用新API执行这些操作:

  1. 开始录音,可选择包括音频(麦克风/扬声器/两者).
  2. 停止录音
  3. 截取屏幕截图而不是视频.

另外,我如何自定义它(分辨率,请求的fps,颜色,时间......)?

android screenshot screen-recording android-4.4-kitkat android-5.0-lollipop

40
推荐指数
1
解决办法
4万
查看次数

我可以在 Android Studio 中以另一种格式而不是 WebM 录制视频吗?

我正在 Android Studio 中开发一个应用程序,能够从模拟器录制视频很有用(通过 Logcat 选项卡中的按钮)。但是,在最新版本的 Studio(我现在使用的是 3.4.1)中,默认视频格式已更改为 WebM。

WebM 视频真的很大而且很难处理。是否有一种简单的方法可以请求不同的格式,例如 MP4?

在模拟器设置中,有一个不同的录制 UI,允许您保存为 .webm 或 .gif。我现在实际上正在使用 GIF,但这不是最好的解决方法。我更喜欢使用 Android Studio UI,因为它更方便。

android android-emulator webm screen-recording android-studio

23
推荐指数
2
解决办法
4845
查看次数

在macOS Catalina上检测屏幕录制设置

检测用户是否已启用此API的可靠方法是什么?

CGWindowListCreateImage即使禁用了屏幕录制API,也将返回有效对象。可能有多种组合(kCGWindowListOptionIncludingWindowkCGWindowListOptionOnScreenBelowWindow),只有一些组合会返回NULL。

- (CGImageRef)createScreenshotImage
{
    NSWindow *window = [[self view] window];
    NSRect rect = [window frame];

    rect.origin.y = NSHeight([[window screen] frame]) - NSMaxY([window frame]);
    CGImageRef screenshot = CGWindowListCreateImage(
                                                    rect,
                                                    kCGWindowListOptionIncludingWindow,
                                                    //kCGWindowListOptionOnScreenBelowWindow,
                                                    0,//(CGWindowID)[window windowNumber],
                                                    kCGWindowImageBoundsIgnoreFraming);//kCGWindowImageDefault
    return screenshot;
}
Run Code Online (Sandbox Code Playgroud)

唯一可靠的方法是CGDisplayStreamCreate冒险,因为Apple每年都会更改隐私设置。

   - (BOOL)canRecordScreen
    {
        if (@available(macOS 10.15, *)) {
            CGDisplayStreamRef stream = CGDisplayStreamCreate(CGMainDisplayID(), 1, 1, kCVPixelFormatType_32BGRA, nil, ^(CGDisplayStreamFrameStatus status, uint64_t displayTime, IOSurfaceRef frameSurface, CGDisplayStreamUpdateRef updateRef) {
                ;
            });
            BOOL canRecord = stream != NULL;
            if (stream) …
Run Code Online (Sandbox Code Playgroud)

macos cocoa screen-recording macos-catalina

13
推荐指数
2
解决办法
3491
查看次数

检测是否正在 macOS 上录制屏幕

我正在寻找一种方法来检测当前是否正在录制屏幕。
理想情况下,记录开始/停止时的事件。也许某种分布式通知。

我的用例是我想在记录屏幕时隐藏我的应用程序的菜单栏项(选择加入),因为它显示日期和时间,而且许多用户不希望屏幕记录中包含时间。

我试着设置NSWindow#sharingType.noneNSStatusBarButton窗口,但该选项似乎只对截图的工作。

答案应该在 Swift 中。

cocoa nswindow nsstatusitem screen-recording swift

9
推荐指数
1
解决办法
1457
查看次数

我无法使用adb屏幕录制工具捕获android屏幕

我有一个带有android KitKat的nexus 4.

我使用以下命令尝试了屏幕录制:

adb shell screenrecord --verbose /sdcard/demo.mp4

adb shell screenrecord --bit-rate 8000000 --time-limit 30 /sdcard/kitkat.mp4
Run Code Online (Sandbox Code Playgroud)

两次,命令都返回此消息:

Main display is 768x1280 @60.00fps (orientation=0)
Configuring recorder for 768x1280 video at 4.00Mbps
ERROR: unable to create video/avc codec instance
Run Code Online (Sandbox Code Playgroud)

在AndroidStudio中打开的调试控制台中,显示了以下日志消息:

02-02 18:16:29.058     176-4045/? E/OMX-VENC-720p? Is component secure 0
02-02 18:16:29.058     176-4045/? E/OMX-VENC-720p? ERROR: Omx_venc::Comp Init Returning failure
02-02 18:16:29.058     176-4045/? E/OMX-VENC-720p? ERROR: venc_open failed
02-02 18:16:29.058     176-4045/? E/OMX-VENC-720p? Destroy C2D instance
02-02 18:16:29.058  11072-11086/? E/ACodec? Unable to instantiate a decoder for …
Run Code Online (Sandbox Code Playgroud)

android screen-recording mediacodec

8
推荐指数
1
解决办法
1万
查看次数

阻止屏幕录制应用程序

如果我有一个包含付费视频的网站,并且我想防止授权/未经授权的用户下载视频,我们可以尽可能地让它变得困难,但我们仍然不能 100% 防止窃取视频。

用户仍然可以使用许多现有的应用程序记录屏幕,我想太多了,并寻找我能做的任何事情来防止它,但随着我的操作系统将不允许网络浏览器检测屏幕记录应用程序。

一季度。但是我可以开发一个可以检测屏幕录像机应用程序的程序(桌面应用程序)吗?

我问是因为如果我能设法构建这样一个程序,我可以使用它来知道用户打开网站是否录制了视频,从而采取了反制措施。

流程是这样的:

  • 每当用户打开我的网站时,我都会检查桌面应用程序是否正在运行。
  • 如果不是,则在应用程序运行之前不会播放视频。

  • 如果桌面应用程序正在运行,则检查是否有同时运行的屏幕录制应用程序。

  • 如果正在运行屏幕录制应用程序,则不会播放视频。

Q2。这个想法甚至有可能实现吗?

desktop-application screen-recording

8
推荐指数
1
解决办法
8623
查看次数

使用 MediaRecorder API 在录制的视频中搜索不起作用

我正在尝试使用 MediaRecorder API 构建屏幕录制。

作为暗示性媒体记录方法

var chunks = [];
var recorder = new MediaRecorder(stream);

recorder.streams = [stream];

recorder.ondataavailable = function(e) {
    chunks.push(e.data);
};

recorder.onstop = function(){
      var blob = new Blob(chunks, {type: "video/webm"});
      chunks = [];

      var mimeType = 'video/webm';
      var fileExtension = 'webm';

      var file = new File([blob ? blob : ''], getFileName(fileExtension), {
          type: mimeType
      });
};
Run Code Online (Sandbox Code Playgroud)

使用这种方法录制工作正常,但录制的视频搜索不起作用。

我在网上搜索了一些关于这个问题的信息,我发现视频标题不包含持续时间。

file控制台上打印对象时,它包含以下属性,

lastModified : 1527592713006
lastModifiedDate : Tue May 29 2018 16:48:33 GMT+0530 (India Standard Time) 
name : …
Run Code Online (Sandbox Code Playgroud)

javascript screen-recording web-mediarecorder mediarecorder-api

7
推荐指数
2
解决办法
2308
查看次数

7
推荐指数
0
解决办法
1720
查看次数

如何在颤振中屏幕记录特定小部件?

目前,我正在使用flutter屏幕录像插件(https://pub.dev/packages/flutter_screen_recording)来录制屏幕,实际上,这个插件录制的是手机的全屏。

但我的要求是只记录特定的小部件或屏幕的特定部分,例如在视频通话应用程序中屏幕中有两个用户,我只想只记录相反的用户视频。

那么有没有可用的解决方法或解决方案,请指导。

dart screen-recording flutter flutter-layout

7
推荐指数
1
解决办法
7979
查看次数