mls

MLS Android SDK

License

License

GroupId

GroupId

tv.mycujoo
ArtifactId

ArtifactId

mls
Last Version

Last Version

1.2.2
Release Date

Release Date

Type

Type

aar
Description

Description

mls
MLS Android SDK
Project URL

Project URL

https://github.com/mycujoo/mls-android
Source Code Management

Source Code Management

https://github.com/mycujoo/mls-android/tree/main

Download mls

How to add to project

<!-- https://jarcasting.com/artifacts/tv.mycujoo/mls/ -->
<dependency>
    <groupId>tv.mycujoo</groupId>
    <artifactId>mls</artifactId>
    <version>1.2.2</version>
    <type>aar</type>
</dependency>
// https://jarcasting.com/artifacts/tv.mycujoo/mls/
implementation 'tv.mycujoo:mls:1.2.2'
// https://jarcasting.com/artifacts/tv.mycujoo/mls/
implementation ("tv.mycujoo:mls:1.2.2")
'tv.mycujoo:mls:aar:1.2.2'
<dependency org="tv.mycujoo" name="mls" rev="1.2.2">
  <artifact name="mls" type="aar" />
</dependency>
@Grapes(
@Grab(group='tv.mycujoo', module='mls', version='1.2.2')
)
libraryDependencies += "tv.mycujoo" % "mls" % "1.2.2"
[tv.mycujoo/mls "1.2.2"]

Dependencies

compile (23)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-android-extensions-runtime jar 1.3.72
» unspecified jar
org.jetbrains.kotlin : kotlin-stdlib-jdk7 jar 1.3.72
androidx.appcompat » appcompat jar 1.2.0
androidx.core » core-ktx jar 1.3.1
androidx.test.espresso » espresso-idling-resource jar 3.2.0
androidx.constraintlayout » constraintlayout jar 2.0.0-rc1
androidx.recyclerview » recyclerview jar 1.1.0
com.github.bumptech.glide : glide jar 4.11.0
com.google.code.gson : gson jar 2.8.6
com.google.dagger : dagger-android jar 2.20
com.google.dagger : dagger-android-support jar 2.20
com.squareup.retrofit2 : retrofit jar 2.7.1
com.squareup.retrofit2 : converter-gson jar 2.7.1
org.jetbrains.kotlinx : kotlinx-coroutines-core jar 1.3.7
org.jetbrains.kotlinx : kotlinx-coroutines-android jar 1.3.6
com.jakewharton.rxrelay3 : rxrelay jar 3.0.0
joda-time : joda-time jar 2.10.6
com.google.android.exoplayer » exoplayer jar 2.12.3
com.npaw.youbora.adapters » exoplayer2-adapter jar 6.6.4
com.caverock : androidsvg-aar jar 1.4
androidx.leanback » leanback-preference jar 1.0.0
com.google.android.exoplayer » extension-leanback jar 2.11.1

Project Modules

There are no modules declared in this project.

Download

MLS (MyCujoo Live Services) in Android platform MLS-android

For usage showcase please refer to Sample-app [https://github.com/mycujoo/mls-android-sample-app]

Overview

MLS Android SDK enables apps to play videos that are hosted on MyCujoo Live Service platform while making displaying of annotations possible. MLS will handle all possible features an app needs to broadcast an event. From retrieving events list to displaying the video itself & annotations on it.

Init MLS SDK main component

Add dependency to SDK in app-level build.gradle file:

implementation 'tv.mycujoo.mls:mls:MLS_LATEST_VERSION_HERE'

Add MLSPlayerView

In xml layout file of your activity (or fragment) add MLSPayerView.

    <tv.mycujoo.mcls.widgets.MLSPlayerView
        android:id="@+id/mlsPlayerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

in order to communicate with SDK, MLS class must be instantiated. Init MLS whenever you have a reference to an Activity:

private lateinit var MLS: MLS
    
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // code ommited for brevity
    
    // constraint MLSPlayerView here

    val playerEventsListener = object : PlayerEventsListener {
        override fun onIsPlayingChanged(playing: Boolean) {
        }
        override fun onPlayerStateChanged(playbackState: Int) {
        }
    }

    val uiEventListener = object : UIEventListener {
        override fun onFullScreenButtonClicked(fullScreen: Boolean) {
        }
    }

    // create MLS component
    MLS = MLSBuilder().publicKey("YOUR_PUBLIC_KEY_HERE")
        .withActivity(this)
        .setPlayerEventsListener(playerEventsListener)
        .setUIEventListener(uiEventListener)
        .setConfiguration(MLSConfiguration())
        .build()

Attach & detach PlayerView

    override fun onStart() {
        super.onStart()
        MLS.onStart(playerView)
    }

    override fun onResume() {
        super.onResume()
        MLS.onResume(playerView)
    }

    override fun onPause() {
        super.onPause()
        MLS.onPause()
    }

    override fun onStop() {
        super.onStop()
        MLS.onStop()
    }

Get Events

    // use Data-Provider to fetch events
    val dataProvider = MLS.getDataProvider()
    dataProvider.fetchEvents(
        10,
        fetchEventCallback = { eventList: List<EventEntity>, previousPageToken: String, nextPageToken: String ->
            MLS.getVideoPlayer().playVideo(eventList.first())
        })

Play video

    // use VideoPlayer to play video
    val videoPlayer = MLS.getVideoPlayer()
    videoPlayer.playVideo("EVENT_ID_HERE") // or event object itself

Modules

Cast Module (Google Cast support)

If you are interested to support Google Cast in MLS, import MLS-Cast module and provide it to builder of MLS-component. Here is the document on how to use it. Also, VideoActivityWithCaster in Sample-App demonstrates it as an full example.

IMA Module (Google Interactive media ads support)

To support Google Interactive media ads in MLS, add this module to your project dependencies and provide an Ima class to MLS builder. Here is the document on how to use it.

tv.mycujoo

mycujoo.tv

Democratizing football broadcasting.

Versions

Version
1.2.2
1.2.1