android - 我什么时候必须奖励在核心 (libgdx) 中观看视频的玩家?

标签 android libgdx admob-rewardedvideoad

我正在 LibGdx 上制作一款包含视频广告的游戏。我实现了接口(interface)及其方法。一切正常,显示视频。

安卓启动器:

public class MainAndroidLauncherAuthorization extends AndroidApplication implements 
AdsController, RewardedVideoAdListener, AdHandler {

private static final String TAG = "GoogleActivity";
private static final int RC_SIGN_IN = 9001;
private FirebaseAuth mAuth;
private GoogleSignInClient mGoogleSignInClient;
private RewardedVideoAd rewardedVideoAd;
private boolean isRewardLoaded;
private boolean completed;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();

    setContentView(R.layout.activity);
    initialize(new STARTGame(this, this), config);

    MobileAds.initialize(this, "ca-app-pub-3940256099942544/5224354917");
    rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
    rewardedVideoAd.setRewardedVideoAdListener(this);
    loadRewardedVideoAd();
}

public void loadRewardedVideoAd() {
    isRewardLoaded=false;
    rewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", new 
AdRequest.Builder().build());
}

@Override
public void onRewardedVideoAdLoaded() {
    isRewardLoaded =true;
}

@Override
public void showRewardedVideo() {

    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if (rewardedVideoAd.isLoaded()) {
                rewardedVideoAd.show();
            } else {
                loadRewardedVideoAd();
            }
        }
    });
}

@Override
public boolean hasVideoReward(){
    return isRewardLoaded;
}

@Override
public void onRewardedVideoAdOpened() {
}

@Override
public void onRewardedVideoStarted() {
}

@Override
public void onRewardedVideoAdClosed() {
    loadRewardedVideoAd();
}

@Override
public void onRewarded(RewardItem reward) {
    loadRewardedVideoAd();
}

@Override
public void onRewardedVideoAdLeftApplication() {
       }

@Override
public void onRewardedVideoAdFailedToLoad(int i) {
}

@Override
public void onRewardedVideoCompleted() {
    completed = true;
}

@Override
public boolean addCoins() {
    return completed;
}

@Override
protected void onResume() {
    super.onResume();
    rewardedVideoAd.resume(this);
}

@Override
public void onPause() {
    super.onPause();
    rewardedVideoAd.pause(this);
}

@Override
public void onDestroy() {
    super.onDestroy();
    rewardedVideoAd.destroy(this);
}

@Override
public void coin_10() {
    Prefs prefs = new Prefs();
    prefs.plus_Coins_bank(10);
}
}

接口(interface):

public interface AdsController {
void showRewardedVideo();
void loadRewardedVideoAd();

boolean addCoins();

boolean hasVideoReward();

核心:

public class Win_01_18 extends Window implements AdsController, AdHandler {
private  Prefs prefs;

public Win_01_18(AdHandler sums, final AdsController adsController, final AssetMan assetMan) {
    super("", assetMan.get_skin_dialogs(), "dialog_window_main");

    *******

    Button btn_buy_10 = new Button(assetMan.get_skin_buttons_coins_video(), "btn_video_long");
    ***
    btn_buy_10.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {

            adsController.showRewardedVideo();

            super.clicked(event, x, y);
        }
    });

@Override
public void showRewardedVideo() {

}

@Override
public void loadRewardedVideoAd() {
}

@Override
public boolean addCoins() {
    return false;
}

@Override
public boolean hasVideoReward() {
    return false;
}

@Override
public void coin_10() {
}

一切正常。有2个问题: 1 - 如何检查 core-classonRewardedVideoCompleted() 方法? 2 - 在core-class观看视频应该在什么情况下加币?

最佳答案

我目前正在自己​​尝试这个。但是如何改变

void showRewardedVideoAd()

bool 值

boolean showRewardedVideoAd()

然后在 onRewardedVideoCompleted() 中返回 true,如果失败则返回 false。

然后在调用你放置的广告的核心

boolean adFinished = False;
adFinished = adsController.showRewardedVideo();
if(adFinished){
    // give them the coins or whatever
} else {
    // the ad failed or the clicked it away early or something. Don't give them coins and go on
}

关于android - 我什么时候必须奖励在核心 (libgdx) 中观看视频的玩家?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59054445/

相关文章:

java - 从 CalenderView 禁用星期五

java - Libgdx 和 Dagger 2 - 不生成代码

java - 了解 libgdx 中的 "this"关键字

firebase - 如何在服务器上验证 Admob Rewarded Video Ad?

android - 恢复 AdMob RewardedVideoAd 时崩溃

java - 如何在Intentservice上使用loopj-async-http android库?

android - 如何在谷歌地图 V2 Android 上移动标记

android - PolygonRegion 创建 anr

android - 测试奖励广告未显示 - 广告无法加载 : LoadAdError(code: 3, 域 : com. google.android.gms.ads,消息 : No ad config.

android - 如何将混合应用程序构建为企业应用程序