create static method
Future<DiveMediaSource?>
create({
- String name = 'my media',
- required DiveMediaSourceSettings settings,
- bool requiresVideoMonitor = true,
override
Implementation
static Future<DiveMediaSource?> create({
String name = 'my media',
required DiveMediaSourceSettings settings,
bool requiresVideoMonitor = true,
}) async {
final source = DiveMediaSource(name, settings: settings);
if (requiresVideoMonitor) await source.setupTexture(source.trackingUUID);
final data = settings.toData();
source.pointer = obslib.createMediaSource(
sourceUuid: source.trackingUUID,
name: name,
settings: data,
);
data.dispose();
await source.syncState();
// TODO: try adding frame callback
// await obslib.addSourceFrameCallback(source.trackingUUID, source.pointer.address);
// Turn on the default audio monitoring device so we can hear the audio.
// TODO: is this really needed here?
if (source.pointer != null) {
obslib.sourceSetMonitoringType(source.pointer!);
}
return source.pointer == null ? null : source;
}