Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 广告关闭后如何播放音频_Swift_Admob_Admob Rewardedvideoad - Fatal编程技术网

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
,那么它就是最新版本。是的,问题仍然存在。关闭广告视图前正在播放音频。请尝试编辑的代码。