GithubHelp home page GithubHelp logo

xiaodonqin / player-sdk-native-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kaltura/player-sdk-native-android

0.0 2.0 0.0 51.01 MB

Kaltura Android Player SDK

Home Page: http://player.kaltura.com

License: GNU Affero General Public License v3.0

Java 100.00%

player-sdk-native-android's Introduction

Build Status

Player SDK Native Android

Note: The Kaltura native player component is in beta. If your a Kaltura customer please contact your Kaltura customer success manager to help facilitate use of this component.

The Kaltura player-sdk-native component enables embedding the kaltura player into native environments. This enables full HTML5 player platform, without limitations of HTML5 video tag API in Android platforms. Currently for Android this enables:

  • Inline playback with HTML controls ( disable controls during ads etc. )
  • Widevine DRM support
  • AutoPlay
  • Volume Control
  • Full player.kaltura.com feature set for themes and plugins
  • HLS Playback
  • DFP IMA SDK

For a full list of native embed advantages see native controls table within the player toolkit basic usage guide.

The Kaltura player-sdk-native component can be embedded into both native apps, and hybrid native apps ( via standard dynamic embed syntax )

Future support will include:

  • PlayReady DRM
  • Multiple stream playback
  • Offline viewing

Architecture Overview

alt text

Quick Start Guide

1. git clone https://github.com/kaltura/player-sdk-native-android.git to the same folder of your app.
2. Add reference to PlayerSDK module from your project:

#####Select settings.gradle and add:

include ':castCompanionLibraryandroid'
project(':castCompanionLibraryandroid').projectDir=new File('../player-sdk-native-android/castCompanionLibraryandroid')
 
include ':exoPlayerLib'
project(':exoPlayerLib').projectDir=new File('../player-sdk-native-android/exoPlayerLib')
 
include ':googlemediaframework'
project(':googlemediaframework').projectDir=new File('../player-sdk-native-android/googlemediaframework')
 
include ':hLSPlayerSDK'
project(':hLSPlayerSDK').projectDir=new File('../player-sdk-native-android/hLSPlayerSDK')
 
include ':playerSDK'
project(':playerSDK').projectDir=new File(โ€˜../player-sdk-native-android/playerSDK')

#####Right click on your app folder ->Open Module Settings.

alt text

#####Select Dependencies tab -> click on the + button and choos the playerSDK module: alt text

Now, you are linked to the playerSDK by reference. Be sure that you cloned the playerSDK to the same folder of your project.

Make sure that you cloned the player-sdk-native-android project to the same folder of your project, if you prefer to clone it else where, you should update the settings.gradle.

API Overview

###Loading Kaltura player into Fragment:


    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        // Inflate the layout for this fragment
        if(mFragmentView == null) {
            mFragmentView = inflater.inflate(R.layout.fragment_fullscreen, container, false);
        }

        mPlayerView = (PlayerViewController) mFragmentView.findViewById(R.id.player);
        mPlayerView.loadPlayerIntoActivity(getActivity());

        KPPlayerConfig config = new  KPPlayerConfig("http://cdnapi.kaltura.com", "26698911", "1831271");
        config.setEntryId("1_o426d3i4");
        mPlayerView.setComponents(config.getVideoURL());
        mPlayerView.addEventListener(new KPEventListener() {
            @Override
            public void onKPlayerStateChanged(PlayerViewController playerViewController, KPlayerState state) {
                Log.d("KPlayer State Changed", state.toString());
            }

            @Override
            public void onKPlayerPlayheadUpdate(PlayerViewController playerViewController, float currentTime) {
                Log.d("KPlayer State Changed", Float.toString(currentTime));
            }

            @Override
            public void onKPlayerFullScreenToggeled(PlayerViewController playerViewController, boolean isFullscreen) {
                Log.d("KPlayer toggeled", Boolean.toString(isFullscreen));
            }
        });
        return mFragmentView;
    }

###Fetching duration: For fetching the duration of a video, the player must be in READY state:

mPlayerView.addEventListener(new KPEventListener() {
            @Override
            public void onKPlayerStateChanged(PlayerViewController playerViewController, KPlayerState state) {
                Log.d("KPlayer State Changed", state.toString());
                if (state == KPlayerState.READY) {
                    Log.d("Duration", Double.toString(playerViewController.getDurationSec()) );
                }
            }

            @Override
            public void onKPlayerPlayheadUpdate(PlayerViewController playerViewController, float currentTime) {
                Log.d("KPlayer State Changed", Float.toString(currentTime));
            }

            @Override
            public void onKPlayerFullScreenToggeled(PlayerViewController playerViewController, boolean isFullscreen) {
                Log.d("KPlayer toggeled", Boolean.toString(isFullscreen));
            }
        });

DEMO - Better Than Words

You can check out our demo which will help you to better understand our SDK: Kaltura Player Demo

License and Copyright Information

All player-sdk-native-ios code is released under the AGPLv3 unless a different license for a particular library is specified in the applicable library path

player-sdk-native-android's People

Contributors

michalradwantzor avatar inbaritay avatar noamtamim avatar nissopa avatar

Watchers

James Cloos avatar Xiaodong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.