Skip to main content
Skip table of contents

Adding CONNECT Player to your application

Update the build.gradle

  1. In Project view, select app src and open the build.gradle file. In the android block, change the minSdkVersion to 21.

    GROOVY
          android {
            compileSdkVersion 28
            defaultConfig {
              applicationId "com.example.myapplication"
              minSdkVersion 21
              targetSdkVersion 28
  2. Add the following lines to the android block:

    GROOVY
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
  3. In the dependencies block:
    • Change the implementation fileTree(dir: 'libs', include: ['*.jar']) filetype to ['*.aar'].
    • Add the dependency androidx.appcompat:appcompat 1.1.0.
    GROOVY
        dependencies {
            implementation fileTree(dir: 'libs', include: ['*.aar'])
            implementation 'androidx.appcompat:appcompat:1.1.0'
        }

    On completion, sync the build.gradle.

Edit the MainActivity.java

Add the minimum amount of code to enable playback of a single clear stream (identified by a hard-coded string) as soon as the app starts.

  1. Select app src main java filename and open the MainActivity.java file. Add the following imports:

    JAVA
        import nagra.otv.sdk.OTVSDK;
        import nagra.otv.sdk.OTVVideoView;
  2. Below the line public class MainActivity extends AppCompatActivity { add:

    CODE
        static final String  TAG = "MainActivity";
        private OTVVideoView mOTVVideoView = null;
        private int          mPausePos = 0;
        private String       mVideoURI = "https://d3bqrzf9w11pn3.cloudfront.net/basic_dash_bbb_clear/bbb_public.mpd";
  3. Replace the contents of the onCreate method with following to set a reference to the video view and load the SDK.

    JAVA
        @Override
        protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          OTVSDK.load(this);
          setContentView(R.layout.activity_main);
          mOTVVideoView = findViewById(R.id.otvVideoView);
        }

    OTVSDK.load(Context context); must be called before accessing any SDK 5 methods as it loads up the player licence and starts up the libraries. This call assumes it can find the licence at the application’s res/raw directory. Alternatively, for trial and testing purposes, the licence can be passed as a string via OTVSDK.load(Context context, String license). The method needs to be called only once at application start-up or before the first use of the SDK.

  4. Add the following to set the Android onStart method, set the stream and start it.

    JAVA
    @Override
    public void onStart()
    {
      super.onStart();
      mOTVVideoView.setVideoPath(mVideoURI);
      mOTVVideoView.start();
    }
  5. Add the following to set the Android onPause method, to save the current position and pause the playback.

    JAVA
        @Override
        public void onPause()
        {
          super.onPause();
          if(mOTVVideoView != null)
          {
            mPausePos = mOTVVideoView.getCurrentPosition();
            mOTVVideoView.pause();
          }
        }
  6. Add the following to set the Android onResume method, to seek to the paused position and start playback.

    JAVA
        @Override
        public void onResume()
        {
          super.onResume();
          if(mOTVVideoView != null && mPausePos > 0)
          {
            mOTVVideoView.seekTo(mPausePos);
            mPausePos = 0;
          }
        }

Add a video view to the layout

  1. Select app > src > main > res > layout and open the activity_main.xml file.
  2. In the Text view window, create a nagra.otv.sdk.OTVVideoView by replacing the contents with:

    XML
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          tools:context=".MainActivity">
     
          <nagra.otv.sdk.OTVVideoView
              android:id="@+id/otvVideoView"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:layout_centerInParent="true"
              android:descendantFocusability="afterDescendants" />
     
    </android.support.constraint.ConstraintLayout>

The OTVVideoView element works as the foremost UI element when part of a layout. Placing any other elements on top of the video view’s area will produce unpredictable effects, and may interfere with the built-in security measures.

Next step: You should now be able to run the app in clear playback mode.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.