EZVIZ Flutter SDK
A Flutter plugin for EZVIZ camera integration with live streaming, device management, PTZ control, and more.
⚡ Quick Start
1. Install
flutter pub add ezviz_flutter
2. Configure Region (Important!)
import 'package:ezviz_flutter/ezviz_flutter.dart';
void main() {
// Set your region BEFORE any API calls
EzvizConstants.setRegion(EzvizRegion.europe); // Match your account region
runApp(MyApp());
}
3. Simple Player
EzvizSimplePlayer(
deviceSerial: 'YOUR_DEVICE_SERIAL',
channelNo: 1,
config: EzvizPlayerConfig(
appKey: 'YOUR_APP_KEY',
appSecret: 'YOUR_APP_SECRET',
region: EzvizRegion.usa, // Optional: per-instance region
),
)
🌍 Region Configuration
⚠️ Most authentication issues are caused by incorrect region settings!
Your EZVIZ account is tied to a specific region. Set the correct one:
// Choose your region
EzvizConstants.setRegion(EzvizRegion.europe); // Europe
EzvizConstants.setRegion(EzvizRegion.usa); // USA/Canada
EzvizConstants.setRegion(EzvizRegion.india); // India/South Asia
EzvizConstants.setRegion(EzvizRegion.singapore); // Singapore/SEA
EzvizConstants.setRegion(EzvizRegion.china); // China
📱 Platform Setup
Android Setup
- Add the following to your
android/app/build.gradle:
android {
compileSdkVersion 34
defaultConfig {
minSdkVersion 21
targetSdkVersion 34
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}
- Add permissions to
android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
iOS Setup
- Add the following to your
ios/Runner/Info.plist:
<key>NSCameraUsageDescription</key>
<string>This app needs camera access to view EZVIZ cameras</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access for audio streaming and intercom</string>
<key>NSLocalNetworkUsageDescription</key>
<string>This app needs local network access to connect to EZVIZ cameras</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>This app needs access to save screenshots and recordings</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app needs access to the photo library</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>This app needs location access for Wi-Fi configuration</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs location access for Wi-Fi configuration</string>
- Set minimum iOS version to 12.0 in
ios/Runner.xcodeproj/project.pbxproj:
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- In Xcode, add capabilities:
- Access WiFi Information
- Hotspot Configuration
✨ Key Features
- Live Video Streaming - Real-time camera viewing
- PTZ Control - Pan, tilt, zoom camera control
- Device Management - Add, remove, manage devices
- Audio/Intercom - Two-way audio communication
- Recording - Video recording and screenshots
- Wi-Fi Config - Device network setup
- Multi-Region - Global deployment support
📚 Examples & Documentation
- Complete Examples - Working code examples
- API Documentation - Auto-generated API docs
- FAQ & Troubleshooting - Common issues and solutions
🆘 Need Help?
Can't authenticate? → Check your region configuration
Other issues? → See our FAQ & Troubleshooting Guide
More examples? → Check the example folder
🔗 Links
🙏 Credits and Acknowledgments
This library integrates and builds upon code from several sources:
Native SDK Integration
flutter_ezviz by pam3ec555: Native Android and iOS SDK implementation for EZVIZ cameras
- Original native SDK wrapper and player components
- Device management and PTZ control functionality
- Core platform channel communication
Enhanced Features
ezviz_flutter_cam by thanhdang198
- Audio and intercom functionality
- Recording and screenshot capabilities
- Wi-Fi configuration features
- Enhanced UI components and controls
- Advanced playback controls (pause/resume)
We extend our gratitude to the original authors and contributors of these repositories for their excellent work in EZVIZ SDK integration. This library combines the best features from both implementations to provide a comprehensive Flutter plugin for EZVIZ camera integration.
Original Repositories
- 🔗 ezviz_flutter_cam - Enhanced camera features and UI components
- 📁 flutter_ezviz - Core native SDK implementation
📄 License
MIT License - see LICENSE file for details.