微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

GPlayer chrome 扩展 - 添加视频播放

如何解决GPlayer chrome 扩展 - 添加视频播放

有些人可能已经注意到,GMail CSP 不再允许播放音频或视频文件。起初它影响了 Chromium 浏览器,但即使是 Firefox 也不再允许它。所以我制作了一个 Google Chrome 扩展来播放 mp3 和 wavs(我的主要用例)。有人要求添加视频播放,但我无法绕过 CSP 限制。

我试过XMLHttpRequest's arrayBuffer

const request = new XMLHttpRequest();
request.open('GET',url,true);
request.responseType = 'arraybuffer';
...
request.onload = () => {
  const { readyState,status,response } = request;
  const videoHtml = location.appendChild(document.createElement("video"));
  videoHtml.classList.add("videoPlayer");
  const mediaSource = new MediaSource();
  videoHtml.src = URL.createObjectURL(mediaSource);
  mediaSource.addEventListener("sourceopen",(e) => {
    URL.revokeObjectURL(videoHtml.src);
    const sourceBuffer = mediaSource.addSourceBuffer("video/mp4");
    console.log("appending Buffer to sourceBuffer");
    sourceBuffer.addEventListener("updateend",(e) => {
      if (!sourceBuffer.updating && mediaSource.readyState === "open") mediaSource.endOfStream();
    });
    sourceBuffer.appendBuffer(response);
  });
request.send();

我也试过XMLHttpRequest's blob

const request = new XMLHttpRequest();
request.open('GET',true);
request.responseType = 'blob';
...
request.onload = () => {
  const { readyState,response } = request;
  const videoHtml = location.appendChild(document.createElement("video"));
  videoHtml.classList.add("videoPlayer");
  videoHtml.src = URL.createObjectURL(response);
request.send();

都失败了 Refused to load media from ...because it violates the following Content Security Policy directive: "media-src https://*.googlevideo.com/videoplayback/"

我如何才能绕过 GMail 播放视频的错误 CSP?

Chrome 扩展程序 - https://chrome.google.com/webstore/detail/gplayer/obdmmgdlafadeehmbmcmoggnaokehnaj

Github 链接 - https://github.com/TriStarGod/GPlayer

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。