| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>audiobuffersource-negative-playbackrate-loop</title> |
| <script src="../resources/js-test-pre.js"></script> |
| <script src="resources/audio-testing.js"></script> |
| <script src="resources/audiobuffersource-testing.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() { |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| context = new webkitOfflineAudioContext(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> |