aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/views/nodes/AudioBox.tsx13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/client/views/nodes/AudioBox.tsx b/src/client/views/nodes/AudioBox.tsx
index ee2a1d60d..772a234a8 100644
--- a/src/client/views/nodes/AudioBox.tsx
+++ b/src/client/views/nodes/AudioBox.tsx
@@ -46,6 +46,7 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
_ele: HTMLAudioElement | null = null;
_recorder: any;
_recordStart = 0;
+ _stream: MediaStream | undefined;
@observable private static _scrubTime = 0;
@observable private _audioState: "unrecorded" | "recording" | "recorded" = "unrecorded";
@@ -133,7 +134,7 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
navigator.mediaDevices.getUserMedia({
audio: true
}).then(function (stream) {
- gumStream = stream;
+ self._stream = stream;
self._recorder = new MediaRecorder(stream);
self.dataDoc[self.props.fieldKey + "-recordingStart"] = new DateField(new Date());
AudioBox.ActiveRecordings.push(self.props.Document);
@@ -145,7 +146,7 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
body: formData
});
const files = await res.json();
- const url = Utils.prepend(files[0].path);
+ const url = Utils.prepend(files[0].result.accessPaths.agnostic.client);
// upload to server with known URL
self.props.Document[self.props.fieldKey] = new AudioField(url);
};
@@ -155,8 +156,8 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
self._recorder.start();
setTimeout(() => {
self.stopRecording();
- gumStream.getAudioTracks()[0].stop();
- }, 60 * 60 * 1000); // stop after an hour?
+ self._stream?.getAudioTracks()[0].stop();
+ }, 60 * 1000); // stop after a minute
});
}
@@ -171,6 +172,7 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
this._recorder.stop();
this.dataDoc.duration = (new Date().getTime() - this._recordStart) / 1000;
this._audioState = "recorded";
+ this._stream?.getAudioTracks()[0].stop();
const ind = AudioBox.ActiveRecordings.indexOf(this.props.Document);
ind !== -1 && (AudioBox.ActiveRecordings.splice(ind, 1));
});
@@ -187,7 +189,7 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
e.stopPropagation();
}
onStop = (e: any) => {
- this.pause();
+ this.stopRecording();
this._ele!.currentTime = 0;
e.stopPropagation();
}
@@ -212,6 +214,7 @@ export class AudioBox extends DocExtendableComponent<FieldViewProps, AudioDocume
</audio>;
}
+ // line 226 is stop button but it doesn't do anything
render() {
const interactive = this.active() ? "-interactive" : "";
return <div className={`audiobox-container`} onContextMenu={this.specificContextMenu}