Мне удалось разместить встроенное видео Youtube на веб-странице, созданной с помощью Flutter for Web. Проблема заключается в том, что этот виджет видео исчезает при прокрутке страницы вверх или вниз и появляется снова, когда прокрутка прекращается. Консоль разработчика Chrome показывает эту ошибку remote.js:34 GET chrome-extension://invalid/ net::ERR_FAILED
Firefox не выдает никаких сообщений об ошибках, но мерцание видео Youtube также происходит там. Похоже, что веб-страница постоянно извлекает информацию о видео с YouTube снова и снова во время прокрутки. Как мне это исправить?
import 'package:flutter/material.dart';
import 'dart:html' as html;
import 'dart:ui' as ui;
void main() {
// ignore: undefined_prefixed_name
ui.platformViewRegistry.registerViewFactory(
'video',
(int viewId) => html.IFrameElement()
..width = '640'
..height = '360'
..src = 'https://www.youtube-nocookie.com/embed/IyFZznAk69U'
..style.border = 'none');
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (BuildContext context, BoxConstraints viewportConstraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: viewportConstraints.maxHeight,
),
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Container(
color: Colors.purple,
child: Center(
child: Container(
height: 360,
width: 640,
color: Colors.green,
child: HtmlElementView(viewType: "video"),
),
),
),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
Text("test", textDirection: TextDirection.ltr),
],
),
),
);
});
}
}