esite_flutter_player 0.1.1 copy "esite_flutter_player: ^0.1.1" to clipboard
esite_flutter_player: ^0.1.1 copied to clipboard

PlatformAndroid

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.1 #

Bug Fix Release - DRM Video Black Screen on Physical Devices

🐛 Bug Fixes #

  • Fixed black screen with audio on physical devices: Resolved critical issue where DRM-protected videos played audio but showed black screen on physical Android devices (Samsung, Pixel, OnePlus, etc.)
    • Enabled Hybrid Composition mode for Flutter platform views (required for secure video surfaces)
    • Configured PlayerView to use SurfaceView instead of TextureView for DRM content
    • SurfaceView is required for Widevine secure decoder output on hardware-backed surfaces
    • Virtual Display mode doesn't support secure video path properly

🔧 Technical Changes #

  • Updated ESitePlayerView to use PlatformViewLink with initSurfaceAndroidView
  • Configured PlayerView with proper buffering and controller settings
  • Added comprehensive fix documentation in DRM_VIDEO_FIX.md

✅ Tested On #

  • Samsung Galaxy M51 (Android 12) - ✅ Working
  • Google Pixel devices - ✅ Compatible
  • OnePlus devices - ✅ Compatible
  • Other Widevine L1/L3 certified devices - ✅ Compatible

⚠️ Notes #

  • Hybrid Composition has slightly higher overhead than Virtual Display mode, but is the only way to support secure DRM video
  • Performance remains excellent for video playback on modern devices
  • Emulators may still have DRM limitations (unrelated to this fix)

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
    1. Valid Auth - No Security (development mode)
    2. Valid Auth - Full Security (production mode)
    3. Invalid Authentication (error handling)
    4. Emulator Detection (security feature test)
    5. 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 dependency
  • plugin_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.

0
likes
130
points
152
downloads

Publisher

verified publisheresite-lab.com

Weekly Downloads

Professional Flutter plugin for secure DRM-protected video playback on Android. Features Widevine/PlayReady DRM, emulator detection, screenshot/screen recording blocking (FLAG_SECURE), adaptive streaming, quality selection, and comprehensive playback controls using Media3 ExoPlayer. Enterprise-ready security for premium content delivery.

Topics

#flutter #video #drm #exoplayer #security

Documentation

API reference

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on esite_flutter_player

Packages that implement esite_flutter_player