@remotion/media 4.0.371 → 4.0.372
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/audio-iterator-manager.js +33 -21
- package/dist/esm/index.mjs +27 -19
- package/package.json +3 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AudioBufferSink } from 'mediabunny';
|
|
1
|
+
import { AudioBufferSink, InputDisposedError } from 'mediabunny';
|
|
2
2
|
import { isAlreadyQueued, makeAudioIterator, } from './audio/audio-preview-iterator';
|
|
3
3
|
export const audioIteratorManager = ({ audioTrack, delayPlaybackHandleIfNotPremounting, sharedAudioContext, }) => {
|
|
4
4
|
let muted = false;
|
|
@@ -48,30 +48,42 @@ export const audioIteratorManager = ({ audioTrack, delayPlaybackHandleIfNotPremo
|
|
|
48
48
|
const iterator = makeAudioIterator(audioSink, startFromSecond);
|
|
49
49
|
audioIteratorsCreated++;
|
|
50
50
|
audioBufferIterator = iterator;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
try {
|
|
52
|
+
// Schedule up to 3 buffers ahead of the current time
|
|
53
|
+
for (let i = 0; i < 3; i++) {
|
|
54
|
+
const result = await iterator.getNext();
|
|
55
|
+
if (iterator.isDestroyed()) {
|
|
56
|
+
delayHandle.unblock();
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (nonce.isStale()) {
|
|
60
|
+
delayHandle.unblock();
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (!result.value) {
|
|
64
|
+
// media ended
|
|
65
|
+
delayHandle.unblock();
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
onAudioChunk({
|
|
69
|
+
getIsPlaying,
|
|
70
|
+
buffer: result.value,
|
|
71
|
+
playbackRate,
|
|
72
|
+
scheduleAudioNode,
|
|
73
|
+
});
|
|
61
74
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
if (e instanceof InputDisposedError) {
|
|
78
|
+
// iterator was disposed by a newer startAudioIterator call
|
|
79
|
+
// this is expected during rapid seeking
|
|
65
80
|
return;
|
|
66
81
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
scheduleAudioNode,
|
|
72
|
-
});
|
|
82
|
+
throw e;
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
delayHandle.unblock();
|
|
73
86
|
}
|
|
74
|
-
delayHandle.unblock();
|
|
75
87
|
};
|
|
76
88
|
const pausePlayback = () => {
|
|
77
89
|
if (!audioBufferIterator) {
|
package/dist/esm/index.mjs
CHANGED
|
@@ -55,7 +55,7 @@ import { ALL_FORMATS, Input, UrlSource } from "mediabunny";
|
|
|
55
55
|
import { Internals as Internals3 } from "remotion";
|
|
56
56
|
|
|
57
57
|
// src/audio-iterator-manager.ts
|
|
58
|
-
import { AudioBufferSink } from "mediabunny";
|
|
58
|
+
import { AudioBufferSink, InputDisposedError } from "mediabunny";
|
|
59
59
|
|
|
60
60
|
// src/helpers/round-to-4-digits.ts
|
|
61
61
|
var roundTo4Digits = (timestamp) => {
|
|
@@ -337,28 +337,36 @@ var audioIteratorManager = ({
|
|
|
337
337
|
const iterator = makeAudioIterator(audioSink, startFromSecond);
|
|
338
338
|
audioIteratorsCreated++;
|
|
339
339
|
audioBufferIterator = iterator;
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
340
|
+
try {
|
|
341
|
+
for (let i = 0;i < 3; i++) {
|
|
342
|
+
const result = await iterator.getNext();
|
|
343
|
+
if (iterator.isDestroyed()) {
|
|
344
|
+
delayHandle.unblock();
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
if (nonce.isStale()) {
|
|
348
|
+
delayHandle.unblock();
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
if (!result.value) {
|
|
352
|
+
delayHandle.unblock();
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
onAudioChunk({
|
|
356
|
+
getIsPlaying,
|
|
357
|
+
buffer: result.value,
|
|
358
|
+
playbackRate,
|
|
359
|
+
scheduleAudioNode
|
|
360
|
+
});
|
|
349
361
|
}
|
|
350
|
-
|
|
351
|
-
|
|
362
|
+
} catch (e) {
|
|
363
|
+
if (e instanceof InputDisposedError) {
|
|
352
364
|
return;
|
|
353
365
|
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
playbackRate,
|
|
358
|
-
scheduleAudioNode
|
|
359
|
-
});
|
|
366
|
+
throw e;
|
|
367
|
+
} finally {
|
|
368
|
+
delayHandle.unblock();
|
|
360
369
|
}
|
|
361
|
-
delayHandle.unblock();
|
|
362
370
|
};
|
|
363
371
|
const pausePlayback = () => {
|
|
364
372
|
if (!audioBufferIterator) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/media",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.372",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"module": "dist/esm/index.mjs",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"mediabunny": "1.24.3",
|
|
25
|
-
"remotion": "4.0.
|
|
25
|
+
"remotion": "4.0.372",
|
|
26
26
|
"webdriverio": "9.19.2"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"react-dom": ">=16.8.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
33
|
+
"@remotion/eslint-config-internal": "4.0.372",
|
|
34
34
|
"@vitest/browser": "^3.2.4",
|
|
35
35
|
"eslint": "9.19.0",
|
|
36
36
|
"react": "19.0.0",
|