1

Chrome 22.0.1229.94 を使用していますが、Web Audio API を使用しているページで音声が聞こえない理由がわかりません。フラグをチェックインしましたが、API を有効にするためのフラグがないようです。API を機能させるために他に何かする必要がありますか?

簡単なスクリプトを実行して、オーディオを発生させようとしましたが、サウンドは発生しませんでした。

<script type="text/javascript">
  var context = new webkitAudioContext(),
  oscillator = context.createOscillator();

  oscillator.type = 2;
  oscillator.frequency.value = 500;
  oscillator.connect(context.destination);
  oscillator.noteOn(0);
</script>
4

4 に答える 4

1

現在のバージョンの API を使用するには、noteOn() の代わりに start()、noteOff() の代わりに stop() を使用し、オシレーターのタイプを文字列として指定する必要があります。

<script type="text/javascript">

var context = new webkitAudioContext();
var oscillator = context.createOscillator();

oscillator.type = "square";
oscillator.frequency.value = 500;
oscillator.connect(context.destination);

var now = context.currentTime;
oscillator.start(now);
oscillator.stop(now + 1);

</script>

仕様は次の場所にあります: http://webaudio.github.io/web-audio-api/

于 2014-07-27T15:23:39.153 に答える
0

noteOn(0); を追加するのを忘れました。

<script type="text/javascript">
var context = new webkitAudioContext(),
oscillator = context.createOscillator();

oscillator.type = 2;
oscillator.frequency.value = 500;
oscillator.connect(context.destination);
oscillator.noteOn(0);

</script>
于 2012-10-27T09:43:10.267 に答える
0

Chrome に問題がある可能性がありますが、とにかくスクリプトに問題があります。Web Audio API を使用する前に、ウィンドウが完全に読み込まれるまで待つように指示する必要があります。これを行うスクリプトのバージョンは次のとおりです。

var init = function () {
    var context, oscillator;
    try {
        context = new webkitAudioContext();
    } catch (e) {
        alert("Your browser does not support Web Audio API!");
        return;
    }
    oscillator = context.createOscillator();

    oscillator.type = 2;
    oscillator.frequency.value = 500;
    oscillator.connect(context.destination);
    oscillator.noteOn(0);
    oscillator.noteOff(1);
}
window.addEventListener("load", init);
于 2013-01-16T13:47:02.733 に答える