createMediaWidget static method
Widget?
createMediaWidget({ - Key? key,
- required Media media,
- NclDocument? document,
})
Implementation
static Widget? createMediaWidget({
Key? key,
required Media media,
NclDocument? document,
}) {
final mimeType = media.mimeType;
var src = media.uri.isNotEmpty ? media.uri : (media.src ?? '');
if (src.startsWith('sbtvd://')) {
return null;
}
if (src.endsWith('.ncl') ||
mimeType == 'application/x-ncl-NCL' ||
mimeType == 'application/x-ncl-ncl') {
return NclWidget(
key: key,
src: src,
media: media,
document: document,
gingacc: document?.gingacc,
);
}
if (mimeType.startsWith('video/') ||
mimeType.startsWith('audio/') ||
mimeType.contains('video') ||
mimeType.contains('audio')) {
return AVWidget(
key: key,
src: src,
media: media,
document: document,
);
}
switch (mimeType) {
case 'application/x-ncl-NCLua':
case 'application/x-ginga-NCLua':
return LuaWidget(
key: key,
src: src,
media: media,
document: document,
);
case 'text/plain':
return TextWidget(
key: key,
src: src,
media: media,
document: document,
);
case 'text/html':
return HtmlWidget(
key: key,
src: src,
media: media,
document: document,
);
case 'image/png':
case 'image/jpeg':
case 'image/gif':
case 'image/webp':
case 'image/bmp':
case 'image/heic':
case 'application/x-ginga-time':
case 'application/x-ncl-time':
return ImageWidget(
key: key,
src: src,
media: media,
document: document,
);
default:
return null;
}
}