您好我想使用AdColony SDK按顺序执行多个视频,我的意思是当一个视频完成时,另一个必须显示。但无法让它工作,第一个视频完成另一个视频没有显示。 这是我的代码,我的onCreate方法:
@Override
public void onCreate( Bundle savedInstanceState )
{
super.onCreate(savedInstanceState);
getActionBar().hide();
// Configure ADC once early before any other ADC calls (except setCustomID/setDeviceID).
AdColony.configure( this, "1.0", APP_ID, ZONE_ID_ONE_VIDEO );
// version - arbitrary application version
// store - google or amazon
// Disable rotation if not on a tablet-sized device (note: not
// necessary to use AdColony).
if ( !AdColony.isTablet() )
{
setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT );
}
// Notify this object about confirmed virtual currency.
AdColony.addV4VCListener( this );
// Notify this object about ad availability changes.
AdColony.addAdAvailabilityListener( this );
setContentView( R.layout.videos_ads_activity );
mAppPreferences = new AppPreferences(this);
/*video1 = new AdColonyV4VCAd(WatchVideosActivity.ZONE_ID_ONE_VIDEO);
video2 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[1]).withListener(this);
video3 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[2]).withListener(this);
video4 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[3]).withListener(this);
video5 = new AdColonyV4VCAd(WatchVideosActivity.ZONES_FIVES_VIDEOS[4]).withListener(this);*/
showOneVideo = (Button) findViewById(R.id.buttonShowOneVideo);
showOneVideo.setOnClickListener(
new View.OnClickListener()
{
public void onClick( View v )
{
AdColonyV4VCAd v4vc_ad = new AdColonyV4VCAd()
.withListener( WatchVideosActivity.this);
if(v4vc_ad.getAvailableViews() == 0){
Toast.makeText(WatchVideosActivity.this, "Loading ads", Toast.LENGTH_SHORT).show();
}else{
v4vc_ad.show();
}
}
});
showFiveVideos = (Button) findViewById(R.id.buttonShowFiveVideos);
showFiveVideos.setOnClickListener(
new View.OnClickListener()
{
public void onClick( View v )
{
v4vc_ad = new AdColonyV4VCAd(ZONE_ID_ONE_VIDEO)
.withListener( WatchVideosActivity.this);
if(v4vc_ad.getAvailableViews() == 0){
Toast.makeText(WatchVideosActivity.this, "Loading ads", Toast.LENGTH_SHORT).show();
}else{
v4vc_ad.show();
}
}
});
}
我班上的其余部分(我没有把实例变量放在但是声明了它):
public void onPause()
{
super.onPause();
AdColony.pause();
}
public void onResume()
{
super.onResume();
AdColony.resume( this );
}
// Reward Callback
public void onAdColonyV4VCReward( AdColonyV4VCReward reward )
{
if (reward.success())
{
//Guardamos el reward en mi preference
mAppPreferences.setCoins(mAppPreferences.getCoins() + reward.amount());
Log.d("AdColony", "rewaerdCallback listener");
}
}
// Ad Started Callback - called only when an ad successfully starts playing
public void onAdColonyAdStarted( AdColonyAd ad )
{
Log.d("AdColony", "onAdColonyAdStarted");
}
//Ad Attempt Finished Callback - called at the end of any ad attempt - successful or not.
public void onAdColonyAdAttemptFinished( AdColonyAd ad )
{
try {
Thread.sleep(1500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
AdColonyV4VCAd v4vc_ad = new AdColonyV4VCAd()
.withListener( WatchVideosActivity.this);
v4vc_ad.show();
}
}
我在onAdColonyAdAttemptFinished回调中创建了一个新视频,但是没有显示。 请帮帮我?提前谢谢。
答案 0 :(得分:2)
在onAdColonyAdAttemptFinished回调之后,新的AdColony视频广告才会准备就绪。此外,建议不要使用按钮以这种方式显示五个视频,因为无法始终确保此级别的广告可用性。
话虽如此,可能的解决方法是使用Handler和Runnable,如下所示:
//In your onCreate method w/ the variables declared globally
handler = new Handler();
runnable = new Runnable()
{
public void run()
{
AdColonyV4VCAd ad = new AdColonyV4VCAd( ZONE_ID ).withListener( listener );
ad.show();
}
};
...
...
...
//At the end of your onAdColonyAdAttemptFinished method,
//delay a second or so to allow your Activity to regain
//control before attempting to launch the new advertisement.
handler.postDelayed( runnable, 1000 );
使用此解决方案,您也不需要包含当前包含的Thread.sleep()。如果您有任何其他疑问,请随时直接通过support@AdColony.com与我们联系。