51 lines
1.4 KiB
HTML
51 lines
1.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>audiobuffersource-negative-playbackrate-loop</title>
|
|
<script src="../resources/js-test.js"></script>
|
|
<script src="resources/audio-testing.js"></script>
|
|
<script src="resources/audiobuffersource-testing-legacy.js"></script>
|
|
|
|
<script>
|
|
|
|
var sampleRate = 44100.0;
|
|
var sourceFrames = 128;
|
|
var renderFrames = 10;
|
|
var testSpacingFrames = 0;
|
|
var startLoop = 100 / sampleRate;
|
|
var loopDuration = (renderFrames / 2) / sampleRate;
|
|
var endLoop = startLoop + loopDuration;
|
|
|
|
var tests = [{
|
|
description:"Test looping playback at -1 playbackRate",
|
|
offsetFrame:0,
|
|
renderFrames:renderFrames,
|
|
expected:[104, 103, 102, 101, 100, 104, 103, 102, 101, 100],
|
|
}];
|
|
|
|
function go() {
|
|
jsTestIsAsync = true;
|
|
|
|
context = new OfflineAudioContext(1, renderFrames, sampleRate);
|
|
|
|
var bufferSource = context.createBufferSource();
|
|
bufferSource.buffer = createRamp(context, 0, 127, sourceFrames);
|
|
|
|
bufferSource.connect(context.destination);
|
|
bufferSource.playbackRate.value = -1;
|
|
bufferSource.loop = true;
|
|
bufferSource.loopStart = startLoop;
|
|
bufferSource.loopEnd = endLoop;
|
|
bufferSource.start(0, startLoop, loopDuration);
|
|
bufferSource.stop(loopDuration * 2);
|
|
|
|
context.oncomplete = checkAllTests;
|
|
context.startRendering();
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body onload="go()">
|
|
</body>
|
|
</html>
|