使用JavaScript在Android(Chrome)上使用计时器播放声音

时间:2016-12-04 07:01:35

标签: javascript android html5-audio

我已经尝试了很多不同的方法来让javascript计时器响起一次平板电脑。我使用了以下函数/调用:

<audio id="audiotag1" preload="auto" controls="false" autoplay="autoplay">
   <source src="buzz.mp3" />
</audio>

和html中的代码

m

它适用于Windows 7操作系统,但不适用于手机。 欢迎任何其他方法,或者这是不可能的?

1 个答案:

答案 0 :(得分:1)

您的问题在

之前被询问过

采用哪种方法?

您可以使用<audio>代码或<object><embed>播放音频。 延迟加载(在需要时加载)声音是最佳方法,如果它的大小很小。您可以动态创建音频元素,加载后可以使用.play()启动它并使用.pause()暂停。

我们使用的东西

我们将使用canplay事件来检测我们的文件是否已准备好播放。

音频元素没有.stop()功能。我们只能暂停它们。当我们想从音频文件的开头开始时,我们改变它的.currentTime。我们将在示例audioElement.currentTime = 0;中使用此行。要实现.stop()功能,我们先暂停文件,然后重置其时间。

我们可能想知道音频文件的长度和当前的播放时间。我们已经在上面学习.currentTime,了解我们使用.duration的长度。

示例指南

  1. 当文档准备就绪时,我们动态创建了一个音频元素
  2. 我们根据想要播放的音频来设置其来源。
  3. 我们用过&#39;结束了&#39;事件再次启动文件。
  4.   

    当currentTime等于其持续时间时,音频文件将停止   播放。无论何时使用play(),都会从头开始。

    1. 我们使用timeupdate事件来更新音频.currentTime发生变化时的当前时间。
    2. 我们使用canplay事件在文件准备好播放时更新信息。
    3. 我们创建了播放,暂停,重启的按钮。
    4. &#13;
      &#13;
      $(document).ready(function() {
          var audioElement = document.createElement('audio');
          audioElement.setAttribute('src', 'http://www.soundjay.com/misc/sounds/bell-ringing-01.mp3');
          
          audioElement.addEventListener('ended', function() {
              this.play();
          }, false);
          
          audioElement.addEventListener("canplay",function(){
              $("#length").text("Duration:" + audioElement.duration + " seconds");
              $("#source").text("Source:" + audioElement.src);
              $("#status").text("Status: Ready to play").css("color","green");
          });
          
          audioElement.addEventListener("timeupdate",function(){
              $("#currentTime").text("Current second:" + audioElement.currentTime);
          });
          
          $('#play').click(function() {
              audioElement.play();
              $("#status").text("Status: Playing");
          });
          
          $('#pause').click(function() {
              audioElement.pause();
              $("#status").text("Status: Paused");
          });
          
          $('#restart').click(function() {
              audioElement.currentTime = 0;
          });
      });
      &#13;
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      <body>
          <h2>Sound Information</h2>
          <div id="length">Duration:</div>
          <div id="source">Source:</div>
          <div id="status" style="color:red;">Status: Loading</div>
          <hr>
          <h2>Control Buttons</h2>
          <button id="play">Play</button>
          <button id="pause">Pause</button>
          <button id="restart">Restart</button>
          <hr>
          <h2>Playing Information</h2>
          <div id="currentTime">0</div>
      </body>
      &#13;
      &#13;
      &#13;