Erie offers two primary options for concatenation-based composition: sequence
and overlay
.
Sequence: concatenate streams serially
Multiple streams concatenated using sequence
are played one by one.
JSON
{
...
"sequence" : [
{ ... },
{ ... },
]
...
}
JavaScript
let stream1 = new Erie.Stream();
...
let stream2 = new Erie.Stream();
...
let sequence = new Erie.Sequence(stream1, stream2);
// alternatively
let sequence = new Erie.Sequence([stream1, stream2]);
Overlay: play streams parallelly
Multiple streams joined using overlay
are played simultaneously together.
Note: using a speech encoding channel may result in uncoordinated scheduling.
JSON
{
...
"overlay" : [
{ ... },
{ ... },
]
...
}
JavaScript
let stream1 = new Erie.Stream();
...
let stream2 = new Erie.Stream();
...
let overlay = new Erie.Overlay(stream1, stream2);
// alternatively
let overlay = new Erie.Overlay([stream1, stream2]);
Patterns
Erie supports the following patterns for composing multiple streams.
- ✅ A
sequence
ofoverlay
s and/orstream
s - ✅ An
overlay
ofstream
s (without arepeat
channel byoverlay
)
The following patterns are not supported (mostly because it may cause unexpected browser malfunctioning).
- ❌ An
overlay
ofsequences
s. Usesequences
ofoverlay
instead. - ❌ An
overlay
ofstream
s (with arepeat
channel byoverlay
).