A Flutter plugin for EZVIZ camera integration with live streaming, device management, PTZ control, and more.
flutter pub add ezviz_flutterimport '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());
}EzvizSimplePlayer(
deviceSerial: 'YOUR_DEVICE_SERIAL',
channelNo: 1,
config: EzvizPlayerConfig(
appKey: 'YOUR_APP_KEY',
accessToken: 'YOUR_ACCESS_TOKEN',
region: EzvizRegion.northAmerica, // Optional: per-instance region
),
)Your EZVIZ account is tied to a specific region. Set the correct one:
// Choose your region
EzvizConstants.setRegion(EzvizRegion.europe); // Europe
EzvizConstants.setRegion(EzvizRegion.northAmerica); // USA/Canada
EzvizConstants.setRegion(EzvizRegion.india); // India/South Asia
EzvizConstants.setRegion(EzvizRegion.singapore); // Singapore/SEA
EzvizConstants.setRegion(EzvizRegion.china); // China- 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" />- 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
- 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
- Complete Examples - Working code examples
- API Documentation - Auto-generated API docs
- FAQ & Troubleshooting - Common issues and solutions
Can't authenticate? β Check your region configuration
Other issues? β See our FAQ & Troubleshooting Guide
More examples? β Check the example folder
This library integrates and builds upon code from several sources:
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
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.
- π ezviz_flutter_cam - Enhanced camera features and UI components
- π flutter_ezviz - Core native SDK implementation
MIT License - see LICENSE file for details.