【发布时间】:2026-01-09 02:55:01
【问题描述】:
在我的 Flutter 应用中实现 YouTube 视频播放器时出现以下错误。
未处理的异常:PlatformException(error, java.lang.IllegalStateException: 尝试创建未注册类型的平台视图:com.pichillilorenzo/flutter_inappwebview。
如何解决这个问题?
YoutubePlayerController controller = YoutubePlayerController(initialVideoId: youtubId);
YoutubePlayer(
controller: controller,
showVideoProgressIndicator: false,
progressIndicatorColor: AppColors.primaryColor,
);
我正在使用this package
还有其他更好的方法可以在 Flutter 中播放 youtube 视频(Webview 除外)吗?
import 'package:cooking_genie/src/presentation/core/app_colors.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:youtube_player_flutter/youtube_player_flutter.dart';
class YoutubePlayerWidget extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return YoutubePlayerWidgetState();
}
}
class YoutubePlayerWidgetState extends State<YoutubePlayerWidget> {
//late YoutubePlayerController _controller;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return YoutubePlayer(
controller: YoutubePlayerController(
initialVideoId: 'zn2GwbPG-tc', //Add videoID.
flags: YoutubePlayerFlags(
hideControls: false,
controlsVisibleAtStart: true,
autoPlay: false,
mute: false,
),
),
showVideoProgressIndicator: true,
progressIndicatorColor: AppColors.primaryColor,
);
}
@override
void dispose() {
super.dispose();
}
}
///
class Controls extends StatelessWidget {
///
const Controls();
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_space,
],
),
);
}
Widget get _space => const SizedBox(height: 10);
}
【问题讨论】:
-
你想在网上玩吗?
-
不,我正在使用我在问题中提到的包...可能是内部使用 Webview 的包。
-
您在哪里测试此应用、模拟器、设备或网络浏览器/chrome?
-
@YeasinSheikh 在模拟器上测试
-
你能分享完整的小部件吗?