Swift 广告关闭后如何播放音频
我想播放音频时,奖励广告完成,并从广告屏幕上取消 这是我的密码:-Swift 广告关闭后如何播放音频,swift,admob,admob-rewardedvideoad,Swift,Admob,Admob Rewardedvideoad,我想播放音频时,奖励广告完成,并从广告屏幕上取消 这是我的密码:- var rewardedAd: GADRewardedAd? override func viewDidLoad() { super.viewDidLoad() rewardedAd?.fullScreenContentDelegate = self createAndLoadRewardAd() } 领取奖励: if let ad = rewardedA
var rewardedAd: GADRewardedAd?
override func viewDidLoad() {
super.viewDidLoad()
rewardedAd?.fullScreenContentDelegate = self
createAndLoadRewardAd()
}
领取奖励:
if let ad = rewardedAd {
ad.present(fromRootViewController: self) {
let reward = ad.adReward
print("Reward received with currency \(reward.amount), amount \(reward.amount.doubleValue)")
Player.shared.play()
}
} else {
let alert = UIAlertController(
title: "Rewarded ad isn't available yet.",
message: "Sound Cannot Be play without watching Rewarded ad. Try after few moments or check Internet Connection",
preferredStyle: .alert)
let alertAction = UIAlertAction(
title: "OK",
style: .cancel,
handler: { [weak self] action in
})
alert.addAction(alertAction)
self.present(alert, animated: true, completion: nil)
}
问题是声音在关闭广告视图之前启动。
我想在关闭广告视图后播放声音。我也尝试了下面的协议,但它不起作用,我的意思是什么都没有
extension SoundViewController: GADFullScreenContentDelegate {
func adDidPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("ad showing")
}
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
createAndLoadRewardAd()
print("ad closed")
}
func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
print(error.localizedDescription)
}
func createAndLoadRewardAd() {
GADRewardedAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/1712485313", request: GADRequest()
) { (ad, error) in
if let error = error {
print("Rewarded ad failed to load with error: \(error.localizedDescription)")
return
}
print("Loading Succeeded")
self.rewardedAd = ad
}
}
}
更新1
音频在此状态下启动。但是我想在广告视图关闭后启动音频。很抱歉回答得很简短,我假设您使用的是最新的AdMob SDK。您可以简单地执行以下操作: AdMob有一个名为
rewardedAd(\uRewardedad:Gadrwardedad,UserDiEarn奖励:GadAddressward)的方法,用于符合GadrwardedDelegate
的任何视图控制器
您只需添加以下内容:
func rewardedAd(_ rewardedAd: GADRewardedAd, userDidEarn reward: GADAdReward) {
//User has earned the reward.
//Play the sound.
let reward = reward
print("Reward received with currency \(reward.amount), amount \(reward.amount.doubleValue)")
self.dismiss(animated: true, completion: nil)
Player.shared.play()
}
此代码将在用户赢得奖励后触发。如果无论用户是否获得奖励,您都希望播放声音,那么您可以将其放入addidSmissFullScreenContent(uu:GADFullScreenPresentingAd)
方法中。如果您使用AddDismissFullScreenContent(\uad:GADFullScreenPresentingAd)
方法,您将无法检查用户是否确实获得了奖励。您使用的是SwiftUI还是UIKit?@Todd UIKit。这是我第一次尝试AdMob。没有找到足够的教程或文档。这就是我困惑的原因。我安装了“pod‘谷歌移动广告SDK’”,我不确定它是否是最新的。我没有找到Gadrewarded代表。我的代码运行良好,但问题是在广告结束前播放声音。我正在更新我的密码你试过我建议的密码了吗?如果您在Podfile中添加了googlemobileadsdk
,那么它就是最新版本。是的,问题仍然存在。关闭广告视图前正在播放音频。请尝试编辑的代码。