侧边栏壁纸
  • 累计撰写 53 篇文章
  • 累计创建 12 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

你需要知道的防截屏/录屏API——EME

Kirito
2024-08-05 / 0 评论 / 0 点赞 / 36 阅读 / 2588 字 / 正在检测是否收录...

Encrypted Media Extensions API

What is it

此功能仅在安全上下文 (HTTPS) 中、某些或所有支持的浏览器中可用。

提供了用于控制内容播放的接口,这些内容受数字限制管理方案的约束。

Why to use it

在视频平台或某些信息分享平台开发中,可能会需要对页面信息进行隐私限制,控制其分享。

How to use it

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>EME API Screenshot Protection Example</title>
</head>
<body>
  <video id="video" controls>
    Your browser does not support the video tag.
  </video>
  <script>
    const video = document.getElementById('video');
    const videoSource = 'path_to_encrypted_video.mp4'; // 加密视频的路径
    const licenseServerUrl = 'https://license-server-url.com/getLicense'; // 许可证服务器的URL
    const initDataType = 'cenc'; // 初始化数据类型(例如 'cenc')
    const initData = new Uint8Array([/* initialization data here */]);

    // 设置视频源
    video.src = videoSource;

    // 请求媒体密钥系统访问权限
    video.addEventListener('encrypted', (event) => {
      const mediaKeySystemConfig = [{
        initDataTypes: [initDataType],
        videoCapabilities: [{
          contentType: 'video/mp4; codecs="avc1.42E01E"',
          robustness: 'SW_SECURE_DECODE' // 配置防截屏选项
        }]
      }];
    // 开始播放视频
    video.play();
  </script>
</body>
</html>
0

评论区