用谷歌脚本播放声音

时间:2014-11-12 22:26:35

标签: audio google-apps-script

是否有一种简单的方法可以将声音文件合并到Google脚本中?我看过一个帖子试试以下内容:

var audio = new Audio(" alert.ogg"); audio.play();

我收到错误" ReferenceError:" Audio"未定义"

4 个答案:

答案 0 :(得分:3)

直到2014年12月IFRAME沙箱发布(以及随后几个月的错误修复;),才有可能通过Google Apps脚本的Caja消毒HTML支持HTML5音频标签。 See issue 2196

这是一个将音乐播放器嵌入文档侧边栏的简单示例。

screenshot

Code.gs

var SIDEBAR_TITLE = 'Sidebar Musicbox';

/**
 * Adds a custom menu with items to show the sidebar and dialog.
 *
 * @param {Object} e The event parameter for a simple onOpen trigger.
 */
function onOpen(e) {
  DocumentApp.getUi()
      .createAddonMenu()
      .addItem('Show sidebar', 'showSidebar')
      .addToUi();
}

/**
 * Runs when the add-on is installed; calls onOpen() to ensure menu creation and
 * any other initializion work is done immediately.
 *
 * @param {Object} e The event parameter for a simple onInstall trigger.
 */
function onInstall(e) {
  onOpen(e);
}

/**
 * Opens a sidebar. The sidebar structure is described in the Sidebar.html
 * project file.
 */
function showSidebar() {
  var ui = HtmlService.createTemplateFromFile('Sidebar')
      .evaluate()
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle(SIDEBAR_TITLE);
  DocumentApp.getUi().showSidebar(ui);
}

Sidebar.html

<!-- Use a templated HTML printing scriptlet to import common stylesheet -->
<?!= HtmlService.createHtmlOutputFromFile('Stylesheet').getContent(); ?>

<div class="sidebar branding-below">
    <p>
    A little music for your enjoyment!
    </p>
    <audio id="player" controls>
      <source src="http://ukulelehunt.com/wp-content/uploads/2008/11/alohadechocobo.mp3" type="audio/mpeg">
      Your browser does not support the audio element.
    </audio>
    <div id="sidebar-status"></div>
</div>

<div class="sidebar bottom">
  <span class="gray branding-text">Docs Add-on Sound Demo</span>
</div>

Stylesheet.html

<!-- This CSS package applies Google styling; it should always be included. -->
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons.css">

<style>
#player {
 width: 95%;
}
</style>

答案 1 :(得分:0)

当然 - 这有效

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
  <audio id="audio_01" controls autoplay hidden="hidden">
  <source src="SHAKUHACHI_Masayuki_Koga_trim_mono-IMi00aV1tdA.mp3" type="audio/mpeg">
      Your browser does not support the audio element
    </audio>

    <script>

    var my_audio_01 = document.getElementById("audio_01");

    my_audio_01.play()

    </script>
  </body>
  </html>

或这个更简单的版本也可以使用

<body>
  <audio controls autoplay hidden="hidden">
    <source src="SHAKUHACHI_Masayuki_Koga_trim_mono-IMi00aV1tdA.mp3" type="audio/mpeg">
      Your browser does not support the audio element
  </audio>
</body>

答案 2 :(得分:0)

要真正播放带有google脚本的音频文件,而不仅仅是打开其中带有音乐播放器的侧边栏(需要用户激活播放按钮),您可以在其中添加以下内容莫格达的答案:

  • 在侧边栏打开时自动播放音频
  • 在音频播放完毕后,自动关闭边栏

要使音频自动播放,请将其替换为html文件:

<audio id="player" controls>
 <source src="http://ukulelehunt.com/wp-content/uploads/2008/11/alohadechocobo.mp3" type="audio/mpeg">
 Your browser does not support the audio element.
</audio>

与此:

<audio autoplay="true" src="http://yourdomain/youraudiofile.wav" />

要使边栏在音频播放完毕后自动关闭,请将其添加到html文件中:

<script>
 setTimeout(function(){ google.script.host.close(); }, 3000);
</script>

用音频需要播放的毫秒数替换 3000

能够自动打开侧边栏非常好,无论是使用时间触发器还是使用单元格中的公式。如果有人知道如何实现这一目标,请分享。

答案 3 :(得分:-1)

如果您使用同步服务同时登录多个 Google 帐户,例如将您的个人 Google 帐户和您的企业 Google 帐户同步到一起,这将不起作用。因此,如果您仅登录到此工作表所在的帐户且同步已关闭,则此方法有效。