Chromium Code Reviews| OLD | NEW |
|---|---|
| (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 } | |
| OLD | NEW |