Flutter-Android 如何在应用程序处于 foreground/background 时使用相机
Flutter-Android how to use the camera while the app is in foreground/background
是否可以在应用处于前台或后台时使用相机?
我尝试使用这两个包 flutter_foreground_task and flutter_background_service 但是一旦我启动相机流 Unhandled Exception: MissingPluginException(No implementation found for method availableCameras on channel plugins.flutter.io/camera).
我总是收到此错误消息
class FirstTaskHandler extends TaskHandler {
void initCamera() async {
final description = await availableCameras().then(
(cameras) => cameras.firstWhere(
(camera) => camera.lensDirection == CameraLensDirection.front,
),
);
final _cameraController = CameraController(
description,
ResolutionPreset.low,
enableAudio: false,
);
await _cameraController.initialize();
await Future.delayed(const Duration(milliseconds: 500));
_cameraController.startImageStream((img) async {
log("Image captures: ${img.width} x ${img.height} -- ${img.format.raw}");
});
}
@override
Future<void> onStart(DateTime timestamp, SendPort? sendPort) async {
initCamera();
}
@override
Future<void> onEvent(DateTime timestamp, SendPort? sendPort) async { }
@override
Future<void> onDestroy(DateTime timestamp) async {
}
@override
void onButtonPressed(String id) {
}
}
我通过编辑相机插件并在应用程序处于 foreground/background 时使 Livestream 方法起作用来解决这个问题。
这是编辑插件 edited-flutter-camera-plugin 的 link,请注意,此版本在某些功能上可能会崩溃,因为我只是编辑了一些文件以使其符合我的目的,即让 Livestream 方法在前台运行
是否可以在应用处于前台或后台时使用相机?
我尝试使用这两个包 flutter_foreground_task and flutter_background_service 但是一旦我启动相机流 Unhandled Exception: MissingPluginException(No implementation found for method availableCameras on channel plugins.flutter.io/camera).
class FirstTaskHandler extends TaskHandler {
void initCamera() async {
final description = await availableCameras().then(
(cameras) => cameras.firstWhere(
(camera) => camera.lensDirection == CameraLensDirection.front,
),
);
final _cameraController = CameraController(
description,
ResolutionPreset.low,
enableAudio: false,
);
await _cameraController.initialize();
await Future.delayed(const Duration(milliseconds: 500));
_cameraController.startImageStream((img) async {
log("Image captures: ${img.width} x ${img.height} -- ${img.format.raw}");
});
}
@override
Future<void> onStart(DateTime timestamp, SendPort? sendPort) async {
initCamera();
}
@override
Future<void> onEvent(DateTime timestamp, SendPort? sendPort) async { }
@override
Future<void> onDestroy(DateTime timestamp) async {
}
@override
void onButtonPressed(String id) {
}
}
我通过编辑相机插件并在应用程序处于 foreground/background 时使 Livestream 方法起作用来解决这个问题。 这是编辑插件 edited-flutter-camera-plugin 的 link,请注意,此版本在某些功能上可能会崩溃,因为我只是编辑了一些文件以使其符合我的目的,即让 Livestream 方法在前台运行