jspsych 8.2.1 → 8.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.browser.js +28 -3
- package/dist/index.browser.js.map +1 -1
- package/dist/index.browser.min.js +6 -6
- package/dist/index.browser.min.js.map +1 -1
- package/dist/index.cjs +27 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +27 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/modules/plugin-api/MediaAPI.ts +28 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jspsych",
|
|
3
|
-
"version": "8.2.
|
|
3
|
+
"version": "8.2.2",
|
|
4
4
|
"description": "Behavioral experiments in a browser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@fontsource/open-sans": "4.5.3",
|
|
51
|
-
"@jspsych/config": "^3.
|
|
51
|
+
"@jspsych/config": "^3.3.0",
|
|
52
52
|
"@types/dom-mediacapture-record": "^1.0.11",
|
|
53
53
|
"base64-inline-loader": "^2.0.1",
|
|
54
54
|
"css-loader": "^6.6.0",
|
|
@@ -284,11 +284,38 @@ export class MediaAPI {
|
|
|
284
284
|
private camera_recorder: MediaRecorder = null;
|
|
285
285
|
|
|
286
286
|
initializeCameraRecorder(stream: MediaStream, opts?: MediaRecorderOptions) {
|
|
287
|
+
let mimeType = this.getCompatibleMimeType() || "video/webm";
|
|
288
|
+
const recorderOptions: MediaRecorderOptions = {
|
|
289
|
+
...opts,
|
|
290
|
+
mimeType
|
|
291
|
+
}
|
|
292
|
+
|
|
287
293
|
this.camera_stream = stream;
|
|
288
|
-
const recorder = new MediaRecorder(stream,
|
|
294
|
+
const recorder = new MediaRecorder(stream, recorderOptions);
|
|
289
295
|
this.camera_recorder = recorder;
|
|
290
296
|
}
|
|
291
297
|
|
|
298
|
+
// mimetype checking code adapted from https://github.com/lookit/lookit-jspsych/blob/develop/packages/record/src/videoConfig.ts#L673-L699
|
|
299
|
+
/** returns a compatible mimetype string, or null if none from the array are supported. */
|
|
300
|
+
private getCompatibleMimeType(): string {
|
|
301
|
+
const types = [
|
|
302
|
+
// chrome firefox edge
|
|
303
|
+
"video/webm;codecs=vp9,opus",
|
|
304
|
+
"video/webm;codecs=vp8,opus",
|
|
305
|
+
// general
|
|
306
|
+
"video/mp4;codecs=avc1.42E01E,mp4a.40.2",
|
|
307
|
+
// safari
|
|
308
|
+
"video/mp4;codecs=h264,aac",
|
|
309
|
+
"video/mp4;codecs=hevc,aac",
|
|
310
|
+
]
|
|
311
|
+
for (const mimeType of types) {
|
|
312
|
+
if (MediaRecorder.isTypeSupported(mimeType)) {
|
|
313
|
+
return mimeType;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
return null;
|
|
317
|
+
}
|
|
318
|
+
|
|
292
319
|
getCameraStream(): MediaStream {
|
|
293
320
|
return this.camera_stream;
|
|
294
321
|
}
|