startCameraStream static method
Future<void>
startCameraStream({
- ImageCallback? onFrameAvailable,
- PoseCallback? onPoseAvailable,
- BodyMaskCallback? onMaskAvailable,
Implementation
static Future<void> startCameraStream({
ImageCallback? onFrameAvailable,
PoseCallback? onPoseAvailable,
BodyMaskCallback? onMaskAvailable,
}) async {
try {
await _channel.invokeMethod<void>('startCameraStream');
_imageStreamSubscription = _eventChannel.receiveBroadcastStream().listen(
(dynamic result) {
final type = result['type'];
// Camera image
if (type == 'image' && onFrameAvailable != null) {
onFrameAvailable(
ImageResult.fromMap(result),
);
}
// Pose detection result
else if (type == 'pose' && onPoseAvailable != null) {
onPoseAvailable(
result['pose'] == null ? null : Pose.fromMap(result['pose']),
);
}
// Selfie segmentation result
else if (type == 'mask' && onMaskAvailable != null) {
onMaskAvailable(
result['mask'] == null ? null : BodyMask.fromMap(result['mask']),
);
}
},
);
} on PlatformException catch (e) {
throw BodyDetectionException(e.code, e.message);
}
}