import 'dart:html' as html; import 'dart:ui_web' as ui_web; import 'package:flutter/material.dart'; class WebStreamPlayer extends StatefulWidget { final String streamUrl; const WebStreamPlayer({super.key, required this.streamUrl}); @override State createState() => _WebStreamPlayerState(); } class _WebStreamPlayerState extends State { late final String _viewType; @override void initState() { super.initState(); _viewType = 'flv-player-${DateTime.now().microsecondsSinceEpoch}'; ui_web.platformViewRegistry.registerViewFactory(_viewType, (int viewId) { final iframe = html.IFrameElement() ..src = 'flv_player.html?src=${Uri.encodeComponent(widget.streamUrl)}' ..style.border = '0' ..style.width = '100%' ..style.height = '100%' ..allow = 'autoplay; fullscreen'; return iframe; }); } @override Widget build(BuildContext context) { return HtmlElementView(viewType: _viewType); } }