大家好。我是 flutter 新手。我想在我的应用程序中实现 Admob 广告。基本上我的应用程序是关于新闻直播的。 每当广告加载时,音频工作正常,但视频有延迟。 谁能帮我解决这个问题吗?
大家好。我是 flutter 新手。我想在我的应用程序中实现 Admob 广告。基本上我的应用程序是关于新闻直播的。 每当广告加载时,音频工作正常,但视频有延迟。 谁能帮我解决这个问题吗?
大家好。我是 flutter 新手。我想在我的应用程序中实现 Admob 广告。基本上我的应用程序是关于新闻直播的。 每当广告加载时,音频工作正常,但视频有延迟。 谁能帮我解决这个问题吗?
import 'package:better_player/better_player.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
class StreamPlayer extends StatefulWidget {
final String channelURL;
final String channelName;
final String channelImage;
StreamPlayer(
{@required this.channelURL,
@required this.channelName,
@required this.channelImage});
@override
_StreamPlayerState createState() => _StreamPlayerState();
}
class _StreamPlayerState extends State<StreamPlayer> {
BetterPlayerController _controller;
BannerAd _bannerAd;
bool _isBannerAdReady = false;
@override
void initState() {
super.initState();
playerConfig();
getBanner();
}
playerConfig() {
BetterPlayerDataSource betterPlayerDataSource = BetterPlayerDataSource(
BetterPlayerDataSourceType.network, widget.channelURL,
liveStream: true);
_controller = BetterPlayerController(
BetterPlayerConfiguration(
aspectRatio: 16 / 9,
autoDetectFullscreenDeviceOrientation: true,
autoPlay: true,
),
betterPlayerDataSource: betterPlayerDataSource);
}
getBanner() {
_bannerAd = BannerAd(
adUnitId: 'ca-app-pub-3940256099942544/6300978111', //Ad for Testing
request: AdRequest(),
size: AdSize.banner,
listener: AdListener(
onAdLoaded: (ad) {
setState(() {
_isBannerAdReady = true;
});
},
onAdFailedToLoad: (ad, err) {
print('Failed to load a banner ad: ${err.message}');
_isBannerAdReady = false;
ad.dispose();
},
),
);
return _bannerAd.load();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
backgroundColor: Colors.transparent,
elevation: 0,
title: Container(
width: 200,
height: 45,
decoration: BoxDecoration(
color: Colors.blueAccent.withOpacity(0.3),
borderRadius: BorderRadius.all(Radius.circular(30))),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
CachedNetworkImage(
imageUrl: widget.channelImage,
width: 25,
height: 25,
fit: BoxFit.contain,
placeholder: (context, url) => Icon(
Icons.image,
size: 25,
),
errorWidget: (context, url, error) => Icon(
Icons.image,
size: 50,
)),
SizedBox(
width: 15,
),
Text(widget.channelName,
style: GoogleFonts.teko(
color: Theme.of(context).primaryColor == Colors.blue
? Colors.black54
: Colors.grey[50],
fontSize: 22,
fontWeight: FontWeight.w600,
)),
SizedBox(
width: 5,
),
],
),
)),
body: Container(
child: Column(
children: [
Center(
child: BetterPlayer(
controller: _controller,
),
),
_isBannerAdReady
? Container(
height: 100,
child: AdWidget(ad: _bannerAd),
)
: Container(),
],
),
),
);
}
}
最佳答案
我知道已经太晚了。只是发在这里给其他人引用。 因为我因此浪费了很多时间。
当我将视频播放器与 google_mobile_ads
广告库结合使用时,我也遇到了同样的问题
所以我只是切换到视频页面上的 native_admob_flutter
广告库。
并且运行良好。
希望这会节省其他人的一些时间。
关于flutter - Admob 的广告加载 Flutter 时视频卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67800413/