esite_flutter_player 0.1.0
esite_flutter_player: ^0.1.0 copied to clipboard
Professional Flutter plugin for secure DRM-protected video playback on Android. Features Widevine/PlayReady DRM, emulator detection, screenshot/screen recording blocking (FLAG_SECURE), adaptive strea [...]
0.1.0 #
Initial Release - Production-ready DRM video player with enterprise security
✨ Features #
Core Playback
- DRM Support: Widevine and PlayReady DRM with secure license acquisition
- Format Support: DASH (.mpd) and HLS (.m3u8) streaming protocols
- Playback Controls: Play, pause, seek (forward/backward with configurable offsets)
- Speed Control: Variable playback speed from 0.5x to 4.0x
- Volume Control: Volume adjustment (0.0-1.0) and mute functionality
- Quality Selection: Manual video track/quality switching with adaptive streaming
- Subtitle Support: Enable/disable subtitle tracks
- Playlist Support: Navigate between media items (next/previous)
🔒 Enterprise Security Features
- Screen Protection: Automatic FLAG_SECURE during playback
- Screenshots blocked during content playback
- Screen recording prevention
- Recent apps preview protection
- Emulator Detection: Multi-method emulator detection with blocking
- Build properties analysis
- Hardware identifier checks
- Emulator-specific file detection
- Known emulator detection (Genymotion, BlueStacks, NOX, Andy)
- Security Configuration: Flexible security levels
ESiteSecurityConfig.maximum()- Full protection (production)ESiteSecurityConfig.disabled()- No restrictions (development)- Custom configuration for selective features
- Security Callbacks: Real-time security violation notifications
- Privacy-First: No license tokens or URLs logged in errors
- Generic Error Messages: No sensitive data exposure in user-facing messages
Developer Experience
- Event Streams: Real-time playback state, DRM events, and error streams
- Comprehensive Errors: User-friendly error messages with actionable guidance
- Type Safety: Full Dart null-safety support
- Documentation: Complete API reference and security implementation guides
- Example App: 5 focused test scenarios covering all features
- Valid Auth - No Security (development mode)
- Valid Auth - Full Security (production mode)
- Invalid Authentication (error handling)
- Emulator Detection (security feature test)
- Screenshot Protection (security feature test)
Performance & Stability
- Memory Optimized: 60% less memory usage vs. initial implementation
- Thread Safe: Proper synchronization and lifecycle management
- Adaptive Streaming: Intelligent quality adaptation for network conditions
- Optimized Buffering: 15s/30s buffer configuration for smooth playback
- Network Resilience: Automatic retry policy (3 attempts) with timeout handling
- Security Lifecycle: Automatic security enable/disable based on playback state
📱 Platform Support #
- Android: API 24+ (Android 7.0+) ✅
- iOS: Planned for future release ⏳
🔧 Configuration Options #
- Source URL configuration with custom headers
- DRM scheme selection (Widevine/PlayReady)
- License server configuration with custom headers
- Auto-play option
- Security configuration (maximum, custom, disabled)
- Emulator detection toggle
- Screen protection toggle
- Security violation callbacks
📚 Documentation #
- Comprehensive README with quick start guide
- Complete API reference documentation
- Security implementation guide with technical details
- Security testing guide with step-by-step instructions
- Detailed error message guide
- 5 focused test scenarios in example app
⚠️ Known Limitations #
- iOS platform not yet supported
- DRM may not work on Android emulators (physical device recommended)
- Requires Android API 24+ (Android 7.0 Nougat or higher)
- FLAG_SECURE can be bypassed on rooted devices
- Emulator detection is not 100% accurate (may have false positives/negatives)
🎯 Requirements #
- Flutter SDK: >=3.3.0
- Dart SDK: >=3.0.0 <4.0.0
- Android: API 24+ (Android 7.0+)
- Physical Android device recommended for DRM testing and security feature validation
📦 Dependencies #
flutter: SDK dependencyplugin_platform_interface: ^2.0.2- Android: Media3 ExoPlayer 1.2.1 with DASH/HLS support
🚀 Getting Started #
# Add to pubspec.yaml
dependencies:
esite_flutter_player: ^0.1.0
# Install
flutter pub get
# Run example (5 test scenarios)
cd example && flutter run
📖 Resources #
- README - Installation and usage guide
- API Documentation - Complete API reference
- Security Guide - Security best practices
- Security Implementation - Technical security details
- Security Testing - Security testing instructions
- Example App - 5 comprehensive test scenarios
🔐 Security Notes #
This release includes comprehensive security features suitable for premium content delivery:
- Protects against screenshot/screen recording piracy
- Blocks playback on emulators to prevent automated content extraction
- Provides real-time security violation callbacks for monitoring
- Follows industry best practices for DRM content protection
Important: While these security measures significantly improve content protection, no security is absolute. For maximum protection, combine with server-side controls, watermarking, and legal DRM agreements.
For detailed migration guides, security notes, and advanced usage, see the documentation directory.