зеркало из https://github.com/mozilla/gecko-dev.git
62 строки
1.9 KiB
HTML
62 строки
1.9 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>Test ConvolverNode channel count</title>
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
</head>
|
|
<body>
|
|
<pre id="test">
|
|
<script src="webaudio.js" type="text/javascript"></script>
|
|
<script class="testbody" type="text/javascript">
|
|
|
|
const signalLength = 2048;
|
|
const responseLength = 1000;
|
|
const outputLength = 2048; // < signalLength + responseLength to test bug 910171
|
|
|
|
var gTest = {
|
|
length: outputLength,
|
|
numberOfChannels: 2,
|
|
createGraph: function(context) {
|
|
var buffer = context.createBuffer(2, signalLength, context.sampleRate);
|
|
for (var i = 0; i < signalLength; ++i) {
|
|
var sample = Math.sin(440 * 2 * Math.PI * i / context.sampleRate);
|
|
// When mixed into a single channel, this produces silence
|
|
buffer.getChannelData(0)[i] = sample;
|
|
buffer.getChannelData(1)[i] = -sample;
|
|
}
|
|
|
|
var response = context.createBuffer(2, responseLength, context.sampleRate);
|
|
for (var i = 0; i < responseLength; ++i) {
|
|
response.getChannelData(0)[i] = i / responseLength;
|
|
response.getChannelData(1)[i] = 1 - (i / responseLength);
|
|
}
|
|
|
|
var convolver = context.createConvolver();
|
|
convolver.buffer = response;
|
|
convolver.channelCount = 1;
|
|
|
|
expectException(function() { convolver.channelCount = 3; },
|
|
DOMException.NOT_SUPPORTED_ERR);
|
|
convolver.channelCountMode = "explicit";
|
|
expectException(function() { convolver.channelCountMode = "max"; },
|
|
DOMException.NOT_SUPPORTED_ERR);
|
|
convolver.channelInterpretation = "discrete";
|
|
convolver.channelInterpretation = "speakers";
|
|
|
|
var source = context.createBufferSource();
|
|
source.buffer = buffer;
|
|
source.connect(convolver);
|
|
source.start(0);
|
|
|
|
return convolver;
|
|
},
|
|
};
|
|
|
|
runTest();
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|