Flutter相机功能插件sparrow_camera的使用
Guide for Instalation
Android
在app/build.gradle
文件中添加以下内容:
minSdkVersion 21
IOS
在info.plist
文件中添加以下内容:
<key>NSCameraUsageDescription</key>
<string>Can I use the camera please?</string>
<key>NSMicrophoneUsageDescription</key>
<string>Can I use the mic please?</string>
Flutter
在pubspec.yaml
文件中添加以下依赖:
sparrow_camera: current_version
How to use
sparrow_camera
是一个Widget,可以在任何地方使用。以下是示例代码。
Example 01
return Scaffold(
body: SparrowCamera(
onFile: (file) => print(file); // 文件回调
maxCount: 6, // 最大照片数量
maxRecordingTime: 20, // 录制视频的最大时长(秒)
onFile: (file) {
print("filePath=${file.path}"); // 文件路径回调
},
onMessage: (message) {
print("message=$message"); // 消息回调
},
onPreview: (file) {
print("file=${file?.path}"); // 预览回调
},
)
);
Example 02
return Scaffold(
body: SparrowCamera(
onFile: (file) => print(file); // 文件回调
maxCount: 6, // 最大照片数量
maxRecordingTime: 20, // 录制视频的最大时长(秒)
onFile: (file) {
print("filePath=${file.path}"); // 文件路径回调
},
onMessage: (message) {
print("message=$message"); // 消息回调
},
onPreview: (file) {
print("file=${file?.path}"); // 预览回调
},
),
floatingActionButton: FloatingActionButton(
onPressed: (){
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => SparrowCamera(
onFile: (file) {
photos.add(file);
// 当拍摄照片时应该关闭相机
Navigator.pop(context);
setState(() {});
},
)))
},
child: Icon(Icons.camera_alt), // 相机图标
),
);
Roadmap 1.0
Feature | Progress |
---|---|
Zoom | ✅ |
Flash | ✅ |
CameraSide select | ✅ |
nullsafety support | ✅ |
Add Exposure control | |
Add Easy Mode Video | ✅ |
Add Gallery | ✅ |
Contributing
欢迎提交Pull Request。对于重大更改,请先打开一个问题讨论你想要进行的更改。
请确保更新适当的测试。
License
示例代码
以下是完整的示例代码,展示如何使用sparrow_camera
插件:
example/lib/main.dart
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:sparrow_camera/sparrow_camera.dart';
void main() {
// cameraMain();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
// 使用SparrowCamera作为主体
body: SparrowCamera(
enableAudio: true, // 是否启用音频
enableZoom: false, // 是否启用缩放
maxCount: 6, // 最大照片数量
maxRecordingTime: 20, // 录制视频的最大时长(秒)
onFile: (file) {
print("filePath=${file.path}"); // 文件路径回调
},
onMessage: (message) {
print("message=$message"); // 消息回调
},
onPreview: (file) {
print("file=${file?.path}"); // 预览回调
},
),
),
);
}
}
更多关于Flutter相机功能插件sparrow_camera的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复