0

私は専門家ではないので、しばらくお待ちください。

ファイルからオーディオをロードしてスプライトを再生する方法を知りたいです。これは疑似コードです。理解に役立つことを願っています。

  • オーディオのパスを尋ねる
  • timeA をミリ秒単位で記述します (プログラムの再生を開始する必要があるとき)。
  • timeB をミリ秒単位で記述します (プログラムの再生を停止する必要がある場合)。
  • スプライトを timeA から timeB まで再生する

このライブラリhttps://github.com/goldfire/howler.jsを使用しています。これでスプライトを自動的に作成する方法はありますか?

私を助けてください!前もって感謝します。

コードを投稿したほうがよいことはわかっていますが、どこから始めればよいかわかりません。

4

1 に答える 1

0

私の理解が正しければ、サウンド ファイルをロードして、ある位置から別の位置までその一部を再生したいとします。

したがって、タイムスタンプを取得して、以下に示すようにスプライトを作成します。便宜上、いくつかのコードを追加しました。サウンド ファイルのデュレーションがわかっている場合はタイムスタンプを計算するのは簡単ですが、デュレーションが不明なファイルの最後からタイムスタンプを計算することも興味深い場合があります。したがって、ファイルをロードする必要があり、その後、期間を取得できます(「オンロード」内の部分を参照してください)

<html>

<head>
  <script src="howler.min.js"></script>
</head>

<body>
  <button id="buttonBefore">Loading...</button>
  <button id="buttonToPlay">Loading...</button>
  <button id="buttonAfter">Loading...</button>
  <button id="buttonLastSecond">Loading...</button>
  <script>
    var timeA = 100;
    var timeB = 200;
    var soundFile = new Howl({
      urls: ['./sound.mp3'],
      onload: function () {
        document.getElementById('buttonBefore').onclick = function () {
          soundFile.play('before')
        }
        document.getElementById('buttonBefore').firstChild.data = "Play before";

        document.getElementById('buttonToPlay').onclick = function () {
          soundFile.play('toplay')
        }
        document.getElementById('buttonToPlay').firstChild.data = "Play toplay";

        document.getElementById('buttonAfter').onclick = function () {
          soundFile.play('after')
        }
        document.getElementById('buttonAfter').firstChild.data = "Play after";

        document.getElementById('buttonLastSecond').onclick = function () {
          soundFile.play('lastSecond')
        }
        document.getElementById('buttonLastSecond').firstChild.data = "Play lastSecond";

        soundFile.sprite({
          "before": [0, timeA - 1],
          "toplay": [timeA, timeB],
          "after": [timeB + 1, soundFile._duration * 1000],
          "lastSecond": [soundFile._duration * 1000 - 1000, soundFile._duration * 1000 - 1],
        });

      }
    });
  </script>
</body>

</html>
于 2016-02-17T19:41:59.503 に答える