Android Open Source - snakk-ads-android-sample-app Vast Player View






From Project

Back to project page snakk-ads-android-sample-app.

License

The source code is released under:

Copyright (c) 2012, Snakk! Media Group All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are m...

If you think the Android project snakk-ads-android-sample-app listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.snakk.advertising.internal;
/*ww  w  .j a  v  a  2s  . c o m*/
import android.content.Context;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.VideoView;
import com.snakk.core.SnakkLog;
import com.snakk.vastsdk.player.TVASTPlayer;
import com.snakk.vastsdk.player.TVASTTrackingVideoView;


public class VastPlayerView extends FrameLayout implements TVASTPlayer, TVASTPlayer.TVASTAdPlayerListener {
    private static final String TAG = "Snakk";
    private static final String COUNTDOWN_PREFIX = "Advertisement ";

    private TVASTTrackingVideoView videoView = null;
    private TextView countdownTextView = null;

    public VastPlayerView(Context context) {
        super(context);
        setup();
    }

    public VastPlayerView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setup();
    }

    public VastPlayerView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setup();
    }

    private void setup() {
        videoView = new TVASTTrackingVideoView(getContext(), this);
        videoView.addCallback(this);

        FrameLayout.LayoutParams lp = new LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT,
                Gravity.CENTER);
        addView(videoView, lp);

        countdownTextView = new TextView(getContext());
        lp = new LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT,
                Gravity.BOTTOM | Gravity.LEFT);

        addView(countdownTextView, lp);
    }

    @Override
    public void addCallback(TVASTAdPlayerListener callback) {
        SnakkLog.d(TAG, "VastPlayerView.addCallback");
        videoView.addCallback(callback);
    }

    @Override
    public void playAd(String url) {
//        Uri uri=Uri.parse(url);
//        videoView.setVideoURI(uri);
        videoView.setVideoPath(url);
        videoView.requestFocus();

        videoView.start();

    }

    @Override
    public void removeCallback(TVASTAdPlayerListener callback) {
        videoView.removeCallback(callback);
    }

    @Override
    public void stopAd() {
        videoView.stopPlayback();
    }

    @Override
    public VideoView getVideoView() {
        return videoView;
    }

    @Override
    public void onVideoClick(TVASTPlayer player) {
        SnakkLog.d(TAG, "VastPlayerView.onVideoClick");
    }

    @Override
    public void onVideoComplete(TVASTPlayer player) {
        //To change body of implemented methods use File | Settings | File Templates.
        countdownTextView.setText(COUNTDOWN_PREFIX + "0:00");
    }

    @Override
    public void onVideoError(TVASTPlayer player) {
        // noop
    }

    @Override
    public void onVideoPause(TVASTPlayer player) {
        // noop
    }

    @Override
    public void onVideoPlay(TVASTPlayer player) {
        // noop
    }

    @Override
    public void onVideoProgress(TVASTPlayer player, int current, int max) {
        int minutes = (max - current) / 60;
        String seconds = String.format("%02d", (max - current) % 60);
        StringBuilder sb = new StringBuilder(COUNTDOWN_PREFIX.length() + 4);
        sb.append(COUNTDOWN_PREFIX)
                .append(minutes)
                .append(':')
                .append(seconds);
        countdownTextView.setText(sb.toString());
    }

    @Override
    public void onVideoResume(TVASTPlayer player) {
        // noop
    }

    @Override
    public void onVideoVolumeChanged(TVASTPlayer player, int volume) {
        // noop
    }


    /**
     * hijack touch listener so that it only applies to the video view...
     * @param listener the OnTouchListener to hijack
     */
    @Override
    public void setOnTouchListener(OnTouchListener listener) {
        videoView.setOnTouchListener(listener);
    }
}




Java Source Code List

com.snakk.advertising.Config.java
com.snakk.advertising.SnakkAdPrompt.java
com.snakk.advertising.SnakkAdRequest.java
com.snakk.advertising.SnakkAdvertising.java
com.snakk.advertising.SnakkBannerAdView.java
com.snakk.advertising.SnakkInterstitialAd.java
com.snakk.advertising.SnakkVideoInterstitialAd.java
com.snakk.advertising.internal.AbstractStatefulAd.java
com.snakk.advertising.internal.AdActivityContentWrapper.java
com.snakk.advertising.internal.AdPromptImpl.java
com.snakk.advertising.internal.AdRequestImpl.java
com.snakk.advertising.internal.BasicWebView.java
com.snakk.advertising.internal.DeviceCapabilities.java
com.snakk.advertising.internal.InterstitialAdImpl.java
com.snakk.advertising.internal.InterstitialBaseView.java
com.snakk.advertising.internal.Sharable.java
com.snakk.advertising.internal.SnakkAdActivity.java
com.snakk.advertising.internal.VastPlayerView.java
com.snakk.advertising.internal.VideoInterstitialAdImpl.java
com.snakk.advertising.package-info.java
com.snakk.adview.AdFullscreenView.java
com.snakk.adview.AdInterstitialBaseView.java
com.snakk.adview.AdInterstitialView.java
com.snakk.adview.AdLog.java
com.snakk.adview.AdOfferWallView.java
com.snakk.adview.AdPrompt.java
com.snakk.adview.AdRequest.java
com.snakk.adview.AdVideoUnitView.java
com.snakk.adview.AdViewCore.java
com.snakk.adview.AdView.java
com.snakk.adview.AutoDetectedParametersSet.java
com.snakk.adview.Base64.java
com.snakk.adview.DeprecatedInterstitialBaseView.java
com.snakk.adview.IMraidCommand.java
com.snakk.adview.LockedOrientationDialog.java
com.snakk.adview.MraidCommand.java
com.snakk.adview.Mraid.java
com.snakk.adview.OldAdActivity.java
com.snakk.adview.Rotate3dAnimation.java
com.snakk.adview.Utils.java
com.snakk.adview.track.EventTracker.java
com.snakk.adview.track.InstallTracker.java
com.snakk.adview.package-info.java
com.snakk.core.SnakkLog.java
com.snakk.vastsdk.TVASTAdErrorEvent.java
com.snakk.vastsdk.TVASTAdErrorListener.java
com.snakk.vastsdk.TVASTAdError.java
com.snakk.vastsdk.TVASTAdType.java
com.snakk.vastsdk.TVASTAdView.java
com.snakk.vastsdk.TVASTAd.java
com.snakk.vastsdk.TVASTAdsLoader.java
com.snakk.vastsdk.TVASTAdsRequest.java
com.snakk.vastsdk.TVASTCompanionAdSlot.java
com.snakk.vastsdk.TVASTCompanionAd.java
com.snakk.vastsdk.TVASTCreative.java
com.snakk.vastsdk.TVASTLinearAd.java
com.snakk.vastsdk.TVASTLinearIcon.java
com.snakk.vastsdk.TVASTMediaFile.java
com.snakk.vastsdk.TVASTNonlinearAd.java
com.snakk.vastsdk.TVASTPostbackTask.java
com.snakk.vastsdk.TVASTUtils.java
com.snakk.vastsdk.TVASTVideoAdsManager.java
com.snakk.vastsdk.player.TVASTPlayer.java
com.snakk.vastsdk.player.TVASTSharable.java
com.snakk.vastsdk.player.TVASTTrackingVideoView.java
com.snakk.vastsdk.player.TVASTVideoProgressThread.java
com.snakkads.tabsswipe.BannerAdPromptFragment.java
com.snakkads.tabsswipe.BannerInterstitialFragment.java
com.snakkads.tabsswipe.BannerRichMediaFragment.java
com.snakkads.tabsswipe.BannerStandardMediaFragment.java
com.snakkads.tabsswipe.BannerVideoFragment.java
com.snakkads.tabsswipe.MainActivity.java
com.snakkads.tabsswipe.SplashScreen.java
com.snakkads.tabsswipe.adapter.TabsPagerAdapter.java
com.yourcompany.AdMobActivity.java
com.yourcompany.SampleActivity.java