我想在我的 Flutter 应用程序中播放 YouTube 视频,并且能够隐藏所有内容(频道名称、视频标题和 YouTube 徽标)。
我最初尝试使用
youtube_player_flutter
包,但事实证明它无法实现这一点。
随后,我尝试了
youtube_player_iframe
包,它号称是100%可定制的。然而,我找不到隐藏一切的方法。如果您有任何见解,请告诉我。
我已经尝试过实现这一目标。通过我当前的方法,我已成功隐藏视频中的 YouTube 徽标和详细信息。但是,我面临自动播放功能不起作用的问题。任何有关如何解决此问题的建议将不胜感激。
如果可以使用 youtube_player_iframe 包实现此目的,请提供有关如何实现它的指导。
class YoutubePlayerWidget extends StatefulWidget {
final String videoId;
const YoutubePlayerWidget({Key? key, required this.videoId})
: super(key: key);
@override
_YoutubePlayerWidgetState createState() => _YoutubePlayerWidgetState();
}
class _YoutubePlayerWidgetState extends State<YoutubePlayerWidget> {
late WebViewController _controller;
@override
Widget build(BuildContext context) {
double screenWidth = MediaQuery.of(context).size.width;
double screenHeight = screenWidth * (16 / 9);
String youtubePlayerHtml =
'''
<html>
<head>
<style>
body {
margin: 0;
overflow: hidden;
}
iframe {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
</style>
</head>
<body>
<iframe
width="$screenWidth"
height="$screenHeight"
src="https://www.youtube.com/embed/${widget.videoId}?controls=0&modestbranding=1&rel=0&autoplay=1&showinfo=0"
frameborder="0"
allowfullscreen
id="youtubeIframe"
></iframe>
</body>
</html>
''';
return SizedBox(
height: screenHeight,
width: screenWidth,
child: WebView(
initialUrl: 'about:blank',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller = webViewController;
_controller.loadUrl(
Uri.dataFromString(youtubePlayerHtml, mimeType: 'text/html')
.toString());
},
),
);
}
}
尝试使用这个包y_player,非常简化的YouTube播放器版本,没有任何品牌。