mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 02:05:42 +00:00
Bug 896353 - Media Recording - Test case for record the MediaStream from audioContext. r=jsmith
This commit is contained in:
parent
dfc33dc92b
commit
27d25f6c75
@ -116,6 +116,7 @@ MOCHITEST_FILES = \
|
||||
test_video_to_canvas.html \
|
||||
test_audiowrite.html \
|
||||
test_mediarecorder_creation.html \
|
||||
test_mediarecorder_record_audiocontext.html \
|
||||
test_mozHasAudio.html \
|
||||
test_source_media.html \
|
||||
test_autoplay_contentEditable.html \
|
||||
|
@ -0,0 +1,65 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test MediaRecorder Record AudioContext</title>
|
||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
||||
<script type="text/javascript" src="manifest.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<script class="testbody" type="text/javascript">
|
||||
|
||||
function startTest() {
|
||||
var context = new AudioContext();
|
||||
var hasonstop = false;
|
||||
var buffer = context.createBuffer(1, 80920, context.sampleRate);
|
||||
for (var i = 0; i < 80920; ++i) {
|
||||
buffer.getChannelData(0)[i] = Math.sin(1000 * 2 * Math.PI * i / context.sampleRate);
|
||||
}
|
||||
|
||||
var source = context.createBufferSource();
|
||||
source.buffer = buffer;
|
||||
|
||||
var dest = context.createMediaStreamDestination();
|
||||
source.connect(dest);
|
||||
var elem = document.createElement('audio');
|
||||
elem.mozSrcObject = dest.stream;
|
||||
mMediaStream = dest.stream;
|
||||
source.start(0);
|
||||
elem.play();
|
||||
mMediaRecorder = new MediaRecorder(dest.stream);
|
||||
mMediaRecorder.onwarning = function() {
|
||||
ok(false, 'onwarning unexpectedly fired');
|
||||
};
|
||||
|
||||
mMediaRecorder.onerror = function() {
|
||||
ok(false, 'onerror unexpectedly fired');
|
||||
};
|
||||
|
||||
mMediaRecorder.onstop = function() {
|
||||
ok(true, 'onstop fired successfully');
|
||||
is(mMediaRecorder.state, 'inactive', 'check recording status is inactive');
|
||||
SimpleTest.finish();
|
||||
};
|
||||
mMediaRecorder.ondataavailable = function (e) {
|
||||
if (mMediaRecorder.state == 'recording') {
|
||||
is('audio/ogg', mMediaRecorder.mimeType, "check the record mimetype return " + mMediaRecorder.mimeType);
|
||||
ok(e.data.size > 0, 'check blob has data');
|
||||
mMediaRecorder.stop();
|
||||
}
|
||||
};
|
||||
try {
|
||||
mMediaRecorder.start(1000);
|
||||
is('recording', mMediaRecorder.state, "check record state recording");
|
||||
} catch (e) {
|
||||
ok(false, 'Can t record audio context');
|
||||
}
|
||||
}
|
||||
|
||||
startTest();
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user