Wistia Video Player
A simple Flutter widget for embedding Wistia videos with full customization support
Learn about all available Wistia player options and advanced embed features in the official documentation:
Wistia Embed Options and Plugins Documentation
Features
- Easy Integration: Simple widget that can be embedded anywhere in your Flutter app
- Full Customization: Comprehensive player options including autoplay, controls visibility, quality settings
- Player State Management: Real-time player state tracking (playing, paused, ended)
- Event Handling: Callbacks for video events like play, pause, end
- Cross-Platform: Works on both iOS and Android
- WebView Integration: Uses WebView with JavaScript for seamless Wistia API integration
- Responsive Design: Adapts to different screen sizes and orientations
- Quality Control: Support for video quality selection and bandwidth optimization
- Accessibility: Built-in support for captions and accessibility features
Getting started
Add this package to your pubspec.yaml:
dependencies:
wistia_video_player: ^1.0.0
Then run:
flutter pub get
Usage
Here's a simple example of how to use the Wistia Video Player:
import 'package:flutter/material.dart';
import 'package:wistia_video_player/wistia_video_player.dart';
class VideoPlayerPage extends StatefulWidget {
final String videoId;
const VideoPlayerPage({Key? key, required this.videoId}) : super(key: key);
@override
State<VideoPlayerPage> createState() => _VideoPlayerPageState();
}
class _VideoPlayerPageState extends State<VideoPlayerPage> {
late WistiaPlayerController wistiaController;
@override
void initState() {
super.initState();
wistiaController = WistiaPlayerController(videoId: widget.videoId);
}
@override
Widget build(BuildContext context) {
return Scaffold(
extendBodyBehindAppBar: true,
body: WistiaPlayer(
controller: wistiaController,
),
);
}
@override
void dispose() {
wistiaController.dispose();
super.dispose();
}
}
For more advanced usage with custom options:
final controller = WistiaPlayerController(
videoId: 'your_video_id',
options: const WistiaPlayerOptions(
autoPlay: false,
controlsVisibleOnLoad: true,
playbar: true,
fullscreenButton: true,
qualityControl: true,
),
);
Additional information
Getting Video ID
You can extract the video ID from a Wistia URL using the built-in converter:
String? videoId = WistiaPlayer.convertUrlToId('https://home.wistia.com/medias/e4a27b971d');
Player Controls
The controller provides methods for programmatic control:
controller.play();
controller.pause();
controller.mute();
controller.unmute();
Contributing
Contributions are welcome! Please feel free to submit a Pull Request at GitHub repository.
Issues
If you encounter any issues or have feature requests, please file them in the GitHub Issues section.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.