0

なぜこれが機能しないのか理解できないようです。エラーはありません。発振器を使用してこれを実行しましたが、正常に動作します。参考までに、これはこのスレッドの続きです 。Web Audio API を使用して 2 つのサウンドを 2 つの Div に割り当て、javascript でクリック イベントを介してそれぞれを個別に再生する

コード:

<div id="divElement"></div>


<style> 

#divElement{
background-color: orange;
width:70px;
height:100px;
left:143px;
}

</style>

<script>

var context = new webkitAudioContext(),
    savedBuffer;

var playAudioFile = function () {
    var source = context.createBufferSource();
    var gainNode = context.createGainNode();
    source.buffer = savedBuffer;


 // START OF PROBLEM AREA: Gain not working but file still plays with no errors.

    source.connect(gainNode);           
    gainNode.connect(context.destination);
    gainNode.gain = 0;

 // END OF PROBLEM AREA

    source.noteOn(0); // Play sound immediately


};

var request = new XMLHttpRequest();

request.open('get', 'audio/A.mp3', true);
request.responseType = 'arraybuffer';

request.onload = function () {
        context.decodeAudioData(request.response,
             function(incomingBuffer) {

                 savedBuffer = incomingBuffer;

                 var divElement = document.getElementById("divElement");
                 divElement.addEventListener("click", playAudioFile , false);
             }
        );
};

request.send();

</script>
4

1 に答える 1

7

gainNode.gain.value = 0代わりに試してください。gainNode.gainAudioGainオブジェクトであり、属性はですvalue

http://www.w3.org/TR/webaudio/#AudioGainNode

于 2012-11-12T09:16:31.163 に答える