Index: chrome/test/data/webrtc/audio_extraction.js |
diff --git a/chrome/test/data/webrtc/audio_extraction.js b/chrome/test/data/webrtc/audio_extraction.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..db7536bbdae0baa9c20497eede27b5496628b79c |
--- /dev/null |
+++ b/chrome/test/data/webrtc/audio_extraction.js |
@@ -0,0 +1,62 @@ |
+/** |
+ * Copyright 2017 The Chromium Authors. All rights reserved. |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+/** |
+ * Aggregate target bits per second for encoding of the Audio track. |
+ * @private |
+ */ |
+const AUDIO_BITS_PER_SECOND = 3000000; |
+ |
+var doneCapturing = false; |
+ |
+/** |
+ * Starts the audio capturing. |
+ * |
+ * @param {Number} The duration of the capture in seconds. |
+ */ |
+function startAudioCapture(capture_duration_in_seconds, output_file) { |
+ console.log('Started capturing for ' + capture_duration_in_seconds + 's to ' |
+ + output_file); |
+ var inputElement = document.getElementById('remote-view'); |
+ |
+ // |audioBitsPerSecond| must set to a large number to throw as little |
+ // information away as possible. |
+ var mediaRecorderOptions = { |
+ audioBitsPerSecond: AUDIO_BITS_PER_SECOND, |
+ mimeType: 'audio/webm', |
+ }; |
+ var stream = inputElement.srcObject; |
+ var mediaRecorder = new MediaRecorder(stream, mediaRecorderOptions); |
+ |
+ var audio_chunks = []; |
+ |
+ mediaRecorder.ondataavailable = function(recording) { |
+ audio_chunks.push(recording.data); |
+ } |
+ mediaRecorder.onstop = function() { |
+ var audioBlob = new Blob(audio_chunks, {type: 'audio/webm'}); |
+ |
+ var url = window.URL.createObjectURL(audioBlob); |
+ var a = document.createElement('a'); |
+ document.body.appendChild(a); |
+ |
+ a.href = url; |
+ a.download = output_file; |
+ a.click(); |
+ |
+ doneCapturing = true; |
+ } |
+ |
+ mediaRecorder.start(); |
+ setTimeout(function() { mediaRecorder.stop(); }, |
+ capture_duration_in_seconds * 1000); |
+ |
+ returnToTest('ok-capturing'); |
+} |
+ |
+function testIsDoneCapturing() { |
+ returnToTest(doneCapturing.toString()); |
+} |