Apply prettier formatting
This commit is contained in:
parent
1cac306093
commit
526645c791
1576 changed files with 65385 additions and 62478 deletions
|
@ -15,9 +15,9 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
// @ts-ignore - we know that this is not a module. We're looking for a path.
|
||||
import decoderWasmPath from 'opus-recorder/dist/decoderWorker.min.wasm';
|
||||
import wavEncoderPath from 'opus-recorder/dist/waveWorker.min.js';
|
||||
import decoderPath from 'opus-recorder/dist/decoderWorker.min.js';
|
||||
import decoderWasmPath from "opus-recorder/dist/decoderWorker.min.wasm";
|
||||
import wavEncoderPath from "opus-recorder/dist/waveWorker.min.js";
|
||||
import decoderPath from "opus-recorder/dist/decoderWorker.min.js";
|
||||
import { logger } from "matrix-js-sdk/src/logger";
|
||||
|
||||
import { SAMPLE_RATE } from "./VoiceRecording";
|
||||
|
@ -38,46 +38,54 @@ export function createAudioContext(opts?: AudioContextOptions): AudioContext {
|
|||
export function decodeOgg(audioBuffer: ArrayBuffer): Promise<ArrayBuffer> {
|
||||
// Condensed version of decoder example, using a promise:
|
||||
// https://github.com/chris-rudmin/opus-recorder/blob/master/example/decoder.html
|
||||
return new Promise((resolve) => { // no reject because the workers don't seem to have a fail path
|
||||
return new Promise((resolve) => {
|
||||
// no reject because the workers don't seem to have a fail path
|
||||
logger.log("Decoder WASM path: " + decoderWasmPath); // so we use the variable (avoid tree shake)
|
||||
const typedArray = new Uint8Array(audioBuffer);
|
||||
const decoderWorker = new Worker(decoderPath);
|
||||
const wavWorker = new Worker(wavEncoderPath);
|
||||
|
||||
decoderWorker.postMessage({
|
||||
command: 'init',
|
||||
command: "init",
|
||||
decoderSampleRate: SAMPLE_RATE,
|
||||
outputBufferSampleRate: SAMPLE_RATE,
|
||||
});
|
||||
|
||||
wavWorker.postMessage({
|
||||
command: 'init',
|
||||
command: "init",
|
||||
wavBitDepth: 24, // standard for 48khz (SAMPLE_RATE)
|
||||
wavSampleRate: SAMPLE_RATE,
|
||||
});
|
||||
|
||||
decoderWorker.onmessage = (ev) => {
|
||||
if (ev.data === null) { // null == done
|
||||
wavWorker.postMessage({ command: 'done' });
|
||||
if (ev.data === null) {
|
||||
// null == done
|
||||
wavWorker.postMessage({ command: "done" });
|
||||
return;
|
||||
}
|
||||
|
||||
wavWorker.postMessage({
|
||||
command: 'encode',
|
||||
buffers: ev.data,
|
||||
}, ev.data.map(b => b.buffer));
|
||||
wavWorker.postMessage(
|
||||
{
|
||||
command: "encode",
|
||||
buffers: ev.data,
|
||||
},
|
||||
ev.data.map((b) => b.buffer),
|
||||
);
|
||||
};
|
||||
|
||||
wavWorker.onmessage = (ev) => {
|
||||
if (ev.data.message === 'page') {
|
||||
if (ev.data.message === "page") {
|
||||
// The encoding comes through as a single page
|
||||
resolve(new Blob([ev.data.page], { type: "audio/wav" }).arrayBuffer());
|
||||
}
|
||||
};
|
||||
|
||||
decoderWorker.postMessage({
|
||||
command: 'decode',
|
||||
pages: typedArray,
|
||||
}, [typedArray.buffer]);
|
||||
decoderWorker.postMessage(
|
||||
{
|
||||
command: "decode",
|
||||
pages: typedArray,
|
||||
},
|
||||
[typedArray.buffer],
|
||||
);
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue