Files
Commercialization.topon/Topon_Adapter/Runtime/Scripts/AwardVideoPlayer.cs
2023-09-14 14:20:26 +08:00

134 lines
4.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using AnyThinkAds.Api;
using Runtime.ADAggregator;
using UnityEngine;
public class AwardVideoPlayer : ADPlayer , ATRewardedVideoListener
{
private ATRewardedVideo _atRewardedVideo;
private Action<bool> _onVideoComplete;
private ADListenerAggregator _aggregator;
public override void OnInit()
{
this._atRewardedVideo = ATRewardedVideo.Instance;
// this._atRewardedVideo.client.setListener(this); //由于新版本广告sdk弃用该方式通过以下方式重新桥接监听事件
this._aggregator = new ADListenerAggregator();
this._aggregator.BindAwardVideoListener(this._atRewardedVideo.client , this);
// var adClient = this._atRewardedVideo.client;
// adClient.on
}
public override void ShowAD(Action onClose, Action<bool> onVideoComplete)
{
if (this.IsReadly())
{
this.curState = 0;
this._onVideoComplete = onVideoComplete;
this.adListener.onClose = onClose;
this.adListener.onVideoComplete = this.OnVideoComplete;
var json = new Dictionary<string, string> { { AnyThinkAds.Api.ATConst.SCENARIO, this.AdScene } };
this._atRewardedVideo.showAd(this.Key , json);
}
}
private void OnVideoComplete(bool obj)
{
this._onVideoComplete?.Invoke(obj);
this._onVideoComplete = null;
}
public override bool IsReadly()
{
return this.curState == 2;
}
public override void LoadAD()
{
if (curState == 0)
{
{
Dictionary<string,string> jsonmap = new Dictionary<string,string>();
//ATConst.USERID_KEY必传用于标识每个用户;ATConst.USER_EXTRA_DATA为可选参数传入后将透传到开发者的服务器
jsonmap.Add(ATConst.USERID_KEY, ADManager.Instance.UserId);
jsonmap.Add(ATConst.USER_EXTRA_DATA, "user_extra_data");
curState = 1;
this._atRewardedVideo.loadVideoAd(this.Key, jsonmap);
}
}
}
#region SDK
public void onRewardedVideoAdLoaded(string placementId)
{
this.curState = 2;
}
public void onRewardedVideoAdLoadFail(string placementId, string code, string message)
{
Debug.LogError($"激励视频加载失败: {message} , code:{code} , placementId: {placementId}");
this.curState = 0;
}
public void onRewardedVideoAdPlayStart(string placementId, ATCallbackInfo callbackInfo)
{
}
public void onRewardedVideoAdPlayEnd(string placementId, ATCallbackInfo callbackInfo)
{
}
public void onRewardedVideoAdPlayFail(string placementId, string code, string message)
{
Debug.LogError($"激励视频播放失败: {message} , code:{code} , placementId: {placementId}");
curState = 0;
this.adListener.OnShowError();
}
public void onRewardedVideoAdPlayClosed(string placementId, bool isReward, ATCallbackInfo callbackInfo)
{
this.adListener.OnRewardVerify(isReward , 1 , "");
this.adListener.OnAdClose();
}
public void onRewardedVideoAdPlayClicked(string placementId, ATCallbackInfo callbackInfo)
{
}
public void onReward(string placementId, ATCallbackInfo callbackInfo)
{
this.adListener.OnRewardVerify(true , 1 , "");
this.adListener.OnAdClose();
}
public void startLoadingADSource(string placementId, ATCallbackInfo callbackInfo)
{
}
public void finishLoadingADSource(string placementId, ATCallbackInfo callbackInfo)
{
}
public void failToLoadADSource(string placementId, ATCallbackInfo callbackInfo, string code, string message)
{
this.OnError(code , message);
}
public void startBiddingADSource(string placementId, ATCallbackInfo callbackInfo)
{
}
public void finishBiddingADSource(string placementId, ATCallbackInfo callbackInfo)
{
}
public void failBiddingADSource(string placementId, ATCallbackInfo callbackInfo, string code, string message)
{
}
#endregion
}