Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: chrome/test/data/webrtc/audio_extraction.js

Issue 2753543010: WebRTC: Use the MediaStream Recording API for the audio_quality_browsertest. (Closed)
Patch Set: Removed obsolete comments. Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /**
2 * Copyright (c) 2017 The Chromium Authors. All rights reserved.
mcasas 2017/03/21 16:54:22 No (c): https://chromium.googlesource.com/chromiu
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7 /**
8 * Aggregate target bits per second for encoding of the Audio track.
9 * @private
10 */
11 var gAudioBitsPerSecond = 3000000;
mcasas 2017/03/21 16:54:22 gVarName for global variables is atypical in javas
12
13 /**
14 * The duration of the audio recording in milliseconds.
15 * @private
16 */
17 var gCaptureDuration = 0;
mcasas 2017/03/21 16:54:22 s/gCaptureDuration/captureDurationMs/ but for its
18
19 /**
20 * The recorded audio encoded in Base64.
21 * @private
22 */
23 var gAudioBase64 = '';
mcasas 2017/03/21 16:54:22 s/gAudioBase64/audio_as_base64/ This can be a hug
ehmaldonado_chromium 2017/03/21 16:59:55 Are there any examples of this already?
24
25 /**
26 * Chunks of the audio recorded by MediaRecorded as they become available.
27 * @private
28 */
29 var gChunks = [];
30
31 /**
32 * A string to be returned to the test about the current status of capture.
33 */
34 var gCapturingStatus = 'capturing-not-started';
35
36 /**
37 * Starts the audio capturing.
38 *
39 * @param {Number} The duration of the capture in seconds.
40 */
41 function startAudioCapture(duration) {
mcasas 2017/03/21 16:54:22 s/duration/duration_seconds/ or similar?
42 console.log('started-capture');
43 var inputElement = document.getElementById('remote-view');
44
45 // |audioBitsPerSecond| must set to a large number to throw as little
46 // information away as possible.
47 var mediaRecorderOptions = {
48 audioBitsPerSecond: gAudioBitsPerSecond,
49 mimeType: 'audio/webm',
50 };
51 var stream = getStreamFromElement_(inputElement);
52 gCaptureDuration = 1000 * duration;
53
54 var mediaRecorder = new MediaRecorder(stream, mediaRecorderOptions);
55
56 mediaRecorder.ondataavailable = function(recording) {
57 gChunks.push(recording.data);
58 }
59 mediaRecorder.onstop = function() {
60 console.log(gChunks.length);
61 var audioBlob = new Blob(gChunks, {type: "audio/webm"});
62 gChunks = [];
63 var reader = new FileReader();
64 reader.onloadend = function() {
65 gAudioBase64 = reader.result.substr(reader.result.indexOf(',') + 1);
66 gCapturingStatus = 'done-capturing';
67 debug('done-capturing');
68 }
69 reader.readAsDataURL(audioBlob);
70 }
71
72 mediaRecorder.start();
73 setTimeout(function() { mediaRecorder.stop(); }, gCaptureDuration);
74 gCapturingStatus = 'still-capturing';
75 }
76
77 /**
78 * Returns the audio recorded by RecordMedia encoded in Base64.
79 */
80 function getRecordedAudioAsBase64() {
81 silentReturnToTest(gAudioBase64);
82 }
83
84 /**
85 * Queries if we're done with the capturing yet.
86 */
87 function doneCapturingAudio() {
88 returnToTest(gCapturingStatus);
89 }
90
91 /**
92 * Returns the stream from the input element to be attached to MediaRecorder.
93 * @private
94 */
95 function getStreamFromElement_(element) {
96 if (element.srcObject !== undefined) {
97 return element.srcObject;
98 } else if (element.src !== undefined) {
99 return element.src;
100 } else {
101 failTest('Error extracting stream from element.');
102 }
mcasas 2017/03/21 16:54:22 It's pervasive in Chromium to not have {} when the
103 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698