This guide shows you how to integrate VidSense SDK into your video player app. You can also download the sample video player app from GitHub, and test video ads while playing the app’s content video.
Before you begin, you’ll need the following:
Copy VidSense SDK to your project folder.
Add the following to your settings.gradle:
include ':app', ':ad'
dependencies {
...
compile project(':ad')
}
...
import com.viscovery.ad.AdSdkManager.AdSdkPlayer;
public class VideoPlayer extends VideoView implements AdSdkPlayer {
...
@Override
public void setVideoPath(String path) {
// your implementation
}
@Override
public void pause() {
// your implementation
}
@Override
public void resume() {
// your implementation
}
@Override
public int getCurrentPosition() {
// your implementation
}
@Override
public int getDuration() {
// your implementation
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.viscovery.player.VideoPlayer
android:id="@+id/player"
android:layout_centerInParent="true"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@+id/container"
android:layout_alignLeft="@id/player"
android:layout_alignTop="@id/player"
android:layout_alignRight="@id/player"
android:layout_alignBottom="@id/player"
android:layout_width="0dp"
android:layout_height="0dp" />
</RelativeLayout>
<FrameLayout
android:id="@+id/outstream"
android:background="@android:color/darker_gray"
android:layout_width="match_parent"
android:layout_height="@dimen/outstream_height" />
</LinearLayout>
...
import com.viscovery.ad.AdSdkManager;
public class MainActivity extends AppCompatActivity {
...
private static final String API_KEY = "89494098-2877-38f8-b424-369ab8de602";
...
private AdSdkManager mAdSdkManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final String path = getString(R.string.video_url);
final ViewGroup container = (ViewGroup) findViewById(R.id.container);
final ViewGroup outstream = (ViewGroup) findViewById(R.id.outstream);
mController = new MediaController(this, false);
mController.setAnchorView(container);
mPlayer = (VideoPlayer) findViewById(R.id.player);
mPlayer.setMediaController(mController);
mPlayer.setOnPreparedListener(this);
mPlayer.setOnInfoListener(this);
mAdSdkManager = new AdSdkManager(this, container, mPlayer, API_KEY);
/*
* You can use following code instead to test with mock ads:
* mAdSdkManager = new AdSdkManager(this, container, mPlayer, API_KEY, true);
*/
mAdSdkManager.setOutstreamContainer(outstream);
mAdSdkManager.setVideoPath(path);
}
}
...
import android.media.MediaPlayer.OnInfoListener;
public class MainActivity extends AppCompatActivity implements OnInfoListener {
...
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
switch (what) {
case MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START:
mAdSdkManager.start();
break;
default:
break;
}
return false;
}
}