js实现浏览器录屏

  1. 复制代码到浏览器控制台
var body = document.body;    
body.addEventListener("click",async function(){ 
var stream = await 
navigator.mediaDevices.getDisplayMedia({video: true}); 
var mime = MediaRecorder.isTypeSupported("video/webm; codecs=vp9") ?"video/webm; codecs=vp9" :"video/webm";        
var mediaRecorder = new MediaRecorder(stream, {mimeType: mime});         //录制        
var chunks = []; 
mediaRecorder.addEventListener('dataavailable', function(e) {            
chunks.push(e.data)        })         //停止   
mediaRecorder.addEventListener('stop', function(){  
var blob = new Blob(chunks, {type: chunks[0].type});  
var url = URL.createObjectURL(blob);            
var a = document.createElement('a');            
a.href = url;            
a.download = 'video.webm';            
a.click();        })        //手动启动
mediaRecorder.start()    });
  1. 点击任何地方进行录屏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: JNI (Java Native Interface) 是 Java 语言的一种本地接口,可以允许 Java 程序调用 C/C++ 代码。不幸的是,并不存在任何一种通用的方法可以在 JNI 层面实现防止录屏。因此,要实现防止录屏,您需要在应用程序的其他层面进行措施。 一些常见的防止录屏方法包括: 1. 在应用程序中使用加密算法加密内容,并在解密时对录屏行为进行检测。 2. 在应用程序的渲染管线中检测录屏软件的行为,并在录屏时采取相应的措施(例如,阻止渲染)。 3. 通过在应用程序中使用 DRM 保护内容来防止录屏。 有关防止录屏的详细信息,请咨询您的开发人员或寻求专业的信息安全咨询服务。 ### 回答2: JNI(Java Native Interface)是Java语言提供的一种机制,用于和其他的非Java语言进行交互。而防止录屏则是指在应用程序中实施一些措施来防止他人通过屏幕录制工具(例如屏幕录像软件)来非法地录制应用程序的内容。 要在JNI中实现防止录屏的功能,可以考虑以下步骤: 1. 在Java层定义一个native方法,通过JNI调用Native层的代码。 2. 在Native层,可以使用一些底层系统API来获取屏幕的内容(如Android中的SurfaceView、WindowManager等)。 3. 在获取到屏幕内容后,可以通过一些算法对内容进行加密或处理,以使其变得无法直接录制。例如,可以对屏幕内容进行像素点的混淆、加入固定的噪点等。 4. 将加密或处理后的屏幕内容传递回Java层,然后显示在程序的用户界面上。 需要注意的是,防止录屏的效果依赖于所使用的算法和实现方式,可能无法完全阻止高级的录屏工具或设备来录制屏幕,只能提供一定的保护。因此,为了更好地保护应用程序的内容安全,还可以考虑结合其他的安全措施,如水印技术、加密传输等。 总的来说,通过JNI实现防止录屏功能,可以增加应用程序内容的安全性,但是不能完全阻止录屏的可能性,因此还需结合其他的安全措施来综合提升应用程序的安全性。 ### 回答3: JNI(Java Native Interface)是一种用于实现Java与本地代码(如C或C++)交互的技术。要实现防止录屏,可以通过JNI来调用本地代码进行屏幕保护。 首先,通过JNI获取屏幕的实时数据。可以使用C或C++编写的本地代码来完成这个任务。这些本地代码可以直接访问底层系统的屏幕缓冲区,并获取屏幕上的像素数据。 然后,通过JNI将获取到的屏幕数据传递给Java层。可以将获取到的像素数据以某种格式(如Bitmap或字节数组)传递给Java层进行处理。 接下来,对传递到Java层的屏幕数据进行处理。可以使用一些图像处理技术,如逐像素检测、模糊化、加密等来改变屏幕数据的形式。这样,即使某些录屏工具能够捕捉到屏幕数据,也无法完整地还原出原始的屏幕内容。 最后,将处理后的屏幕数据显示在屏幕上。可以使用Java层的API(如SurfaceView或TextureView)来将处理后的屏幕数据渲染到屏幕上。这样,屏幕上显示的内容将是经过处理的屏幕数据,达到了防止录屏的目的。 需要注意的是,虽然使用JNI可以实现对屏幕数据的加密和处理,但并不能完全阻止所有形式的录屏。某些高级的录屏工具可能仍然能够绕过这些保护措施。因此,为了更好地保护屏幕内容,还可以结合其他安全措施,如硬件加密、屏幕保护等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值