代码之家  ›  专栏  ›  技术社区  ›  tree

将Google Drive视频添加到Google工作表或文档的侧栏

  •  -1
  • tree  · 技术社区  · 8 年前

    ^^没有回答这个问题。此外,其他stackoverflow搜索似乎也有过时的信息。也许它曾经奏效过,我不知道,但现在不行了。

    我想在google sheets或docs(不是网站,因为我不能直接编辑视频旁边的doc或sheet)中包含教学视频,但我希望它来自google drive,而不是youtube。

    我也知道谷歌的表单、幻灯片和网站允许视频嵌入,所以我只希望能有一个解决方案来处理表单(最好是)或文档。

    我添加了一个侧栏:

    function showSidebar(){
      var html = HtmlService.createHtmlOutputFromFile("sidebar")
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setWidth(300)
      SpreadsheetApp.getUi().showSidebar(html);
    }
    

    但我认为没有一种方法可以将视频工作包含在驱动器文件中。以下是youtube的作品:

     <iframe width="420" height="315" src="https://www.youtube.com/embed/tgbNymZ7vqY">
    </iframe>
    

    以下是我认为我应该能够使用的:

     <video width="400" autoplay controls>
        <source src="https://drive.google.com/file/d/fileID/preview" type="video/mp4">
    
        Your browser does not support HTML5 video.
        </video>
    

    虽然我知道@ruben在说什么——我可以将视频嵌入到网站中——但如果我尝试将指向网站的链接作为iframe嵌入到谷歌工作表的子栏中,这似乎真的不起作用。

    我也尝试过谷歌附加组件和应用程序,但还没有找到一个能按我需要的方式工作的。用户不想打开新屏幕。

    2 回复  |  直到 8 年前
        1
  •  0
  •   Tanaike    8 年前

    你想使用多大的视频文件?如果尺寸小,这次修改怎么样?在我的环境中,当我使用侧边栏上的视频标签在Google Drive中添加视频时,我会使用webContentLink,而不使用 export=download (您也可以将WebContent链接用于 导出=下载 )那么你能试着做一下修改吗?

    发件人:

    <video width="400" autoplay controls>
    <source src="https://drive.google.com/file/d/fileID/preview" type="video/mp4">
    Your browser does not support HTML5 video.
    </video>
    

    致:

    <video width="400" autoplay controls>
    <source src="https://drive.google.com/uc?id=fileID" type="video/mp4">
    Your browser does not support HTML5 video.
    </video>
    

    注:

    • 在这种情况下,当视频文件的大小较大时,加载时间变长。请小心这个。

    如果这不是你想要的,我很抱歉。

        2
  •  0
  •   tree    8 年前

    @塔奈克通过使用链接让我朝着正确的方向前进:

    https://drive.google.com/uc?id=fileID

    但我的错误是403。如果您在某个组织中,可能需要在浏览器中使用类似以下链接的链接:

    https://drive.google.com/a/yourcompany.com/uc?id=fileid

    这个链接实际上会将你转发到一个新的链接。然后,您可以使用这个新链接来托管和播放驱动器文件。

    谢谢大家!

    更新:文件本身存在共享/权限问题,因此其他人可能无法观看视频。仍在调查中

    更新#2-你只需要动态创建链接,因为每个用户都会获得自己的链接来查看它。

    你必须把它写进你的代码里。gs文件

    function createLink(){
       var fileId = 'fileID';
       var getFile = DriveApp.getFileById(fileId);
        Logger.log(getFile);
       var url = getFile.getDownloadUrl();
        Logger.log(url);
    
    
        url = url.replace("&e=download&gd=true","");
    
        var output = '<video width="400" autoplay controls><source src="'+url+'" type="video/mp4">Your browser does not support HTML5 video.</video>';
        Logger.log(output);
    
        var html = HtmlService.createHtmlOutput(output)
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setWidth(600)
      .setTitle("Embedded video");
      SpreadsheetApp.getUi().showSidebar(html);
      }