Skip to content

Commit

Permalink
♻️ #13 media recorder
Browse files Browse the repository at this point in the history
  • Loading branch information
Vanessa219 committed Feb 17, 2019
1 parent 48b72d7 commit 205d65b
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions src/ts/toolbar/Record.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ export class Record extends MenuItemClass {
}

_bindEvent(vditor: Vditor) {
let mediaRecorder: any
let mediaRecorder: MediaRecorder
this.element.children[0].addEventListener('click', () => {
if (!mediaRecorder) {
navigator.mediaDevices.getUserMedia({audio: true}).then((mediaStream: MediaStream) => {
mediaRecorder = new MediaRecorder(mediaStream)
mediaRecorder.recorder.onaudioprocess = (e: any) => {
mediaRecorder.recorder.onaudioprocess = (e: AudioProcessingEvent) => {
//Do nothing if not recording:
if (!mediaRecorder.isRecording) {
return
Expand Down
8 changes: 4 additions & 4 deletions src/ts/util/MediaRecorder.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
export class MediaRecorder {
SAMPLE_RATE = 5000 // 44100 suggested by demos;
DEFAULT_SAMPLE_RATE: any
DEFAULT_SAMPLE_RATE: number
isRecording = false
readyFlag = false
leftChannel: Array<Float32List> = []
rightChannel: Array<Float32List> = []
recordingLength = 0
recorder: any //This needs to be public so the 'onaudioprocess' event handler can be defined externally.
recorder: ScriptProcessorNode //This needs to be public so the 'onaudioprocess' event handler can be defined externally.

constructor(e: MediaStream) {
let context
Expand Down Expand Up @@ -147,7 +147,7 @@ export class MediaRecorder {
return result
}

private mergeBuffers(desiredChannelBuffer: any) {
private mergeBuffers(desiredChannelBuffer: Array<Float32List>) {
const result = new Float32Array(this.recordingLength)
let offset = 0
const lng = desiredChannelBuffer.length
Expand All @@ -159,7 +159,7 @@ export class MediaRecorder {
return result
}

private writeUTFBytes(view: any, offset: number, string: string) {
private writeUTFBytes(view: DataView, offset: number, string: string) {
const lng = string.length
for (let i = 0; i < lng; i++) {
view.setUint8(offset + i, string.charCodeAt(i))
Expand Down

0 comments on commit 205d65b

Please sign in to comment.