Comment on page
Android Player SDK
Simple Streaming at scale.
Uiza is the complete toolkit for building a powerful video streaming application with unlimited scalability. We design Uiza so simple that you only need a few lines of codes to start streaming, but sophisticated enough for you to build complex products on top of it.
Step 1. Add the
JitPack
repository to your build.gradle
file allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
implementation 'com.github.uizaio:uiza-android-player-sdk:1.1.x'
For Android Support Compat (Support until January 2021)
implementation 'com.github.uizaio:uiza-android-player-sdk:1.0.x'
- Additionally, if you want to use the Chromecast feature, add the following dependencies to your project:
// for ChromeCast
implementation 'androidx.mediarouter:mediarouter:1.0.0'
implementation 'com.google.android.gms:play-services-cast-framework:18.1.0'
if you use
android support compat
// for ChromeCast
implementation 'com.android.support:mediarouter-v7:28.0.0'
implementation 'com.google.android.gms:play-services-cast-framework:16.2.0' // from 17.x support androidx only
- If advertising support should be enabled, also add the following dependencies to your project:
// for IMA Ads
implementation 'com.google.android.exoplayer:extension-ima:2.10.8'
implementation 'com.google.android.gms:play-services-ads:19.0.1' // from 18.x support androidx only
Note:
- The version of the ExoPlayer Extension IMA must match the version of the ExoPlayer library being used.
- If you are using both ChromeCast and IMA Ads dependencies, we recommend using dependency
com.google.android.gms:play-services-cast-framework:$version
withversion >= 18.1.0
orversion=16.2.0
(support compat) to avoid dependency version conflicts
Turn on Java 8 support
If not enabled already, you need to turn on Java 8 support in all
build.gradle
files depending on ExoPlayer, by adding the following to the android
section:compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
}
- 1.Init UZPlayerpublic class App extends MultiDexApplication {@Overridepublic void onCreate() {super.onCreate();UZPlayer.init();}}
- 2.If you want show log, install any
Tree
instances you want in theonCreate
of your application class
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
}
<application
android:name=".App"
>
XML
<com.uiza.sdk.view.UZVideoView
android:id="@id/uiza_video"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
JAVA
Create java file MainActivity:
public class MainActivity extends AppCompatActivity implements UZCallback {
...
}
Manifest
<activity
android:name=".MainActivity "
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode" />
In your
activity
or fragment
- Play with entity:uzVideo = (UZVideoView) findViewById(R.id.uiza_video);uzVideo.setUZCallback(this);uzVideo.play(UZPlayback playback);// orUZPlayer.setCurrentPlayback(UZPlayback playback);uzVideo.play();// or playlistuzVideo.play(List<UZPlayback> playlist);
Don't forget to add in activity life cycle event:
@Override
public void onDestroy() {
uzVideo.onDestroy();
super.onDestroy();
}
@Override
public void onResume() {
uzVideo.onResume();
super.onResume();
}
@Override
public void onPause() {
uzVideo.onPause();
super.onPause();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
uzVideo.onActivityResult(resultCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
Only 3 steps, you can customize everything about player skin.
Please note
app:controller_layout_id="@layout/uz_controller_custom_layout"
- In this xml file, you can edit anything you like: position, color, drawable resouces...
- You can add more view (TextView, Button, ImageView...).
- You can remove any component which you dont like.
- Please note: Don't change any view
id
s if you are using it.
Step 3: On function
onCreate()
of Activity
, put this code: UZPlayer.setUZPlayerSkinLayoutId(R.layout.uzplayer_skin_custom);
Ex:
@Override
protected void onCreate(@Nullable Bundle savedState) {
UZPlayer.setUZPlayerSkinLayoutId(R.layout.uzplayer_skin_custom);
super.onCreate(savedState);
}
Note: If you are using Chromecast, please use UZPlayer.setCasty(Activity activity) on function onCreate() of Activity
@Override
protected void onCreate(@Nullable Bundle savedState) {
UZPlayer.setCasty(this);
UZPlayer.setUZPlayerSkinLayoutId(R.layout.uzplayer_skin_custom);
super.onCreate(savedState);
}
Ex: findView from your custom layout:
TextView tvSample = uzVideo.findViewById(R.id.tv_sample);
That's enough! This code above will change the player's skin quickly. You can build and run your app now.
But if you wanna change the player's skin when the player is playing, please you this function:
uzVideo.changeSkin(R.layout.uzplayer_skin_custom);
Note:
- You should not change the id of the view. Ex:
android:id="@id/player_view"
Do not changeandroid:id="@id/player_view_0"
orandroid:id="@+id/player_view_0"
...
- 1.
- 2.From
Android Nougat
(Android SDK >= 24) Google supportedPIP
. To implement, inAndroidManifest.xml
addandroid:supportsPictureInPicture="true"
insideYour Activity
and reviewPIPPlayerActivity
.
Do not support R8
buildTypes {
release {
minifyEnabled true
shrinkResources true
useProguard true
proguardFiles = [
getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
]
}
}
Uiza Checkstyle configuration is based on the Google coding conventions from Google Java Style that can be found at here.
You can setting the rules after import project to Android Studio follow below steps:
- 1.File > Settings > Editor > Code Style
- 2.Right on the
Scheme
, select the setting icon > Import Scheme > Intellij IDEA code style XML - 3.Select the
uiza_style.xml
file path - 4.Click Apply > OK, then ready to go
- 1.File > Settings > Other Settings > Checkstyle
- 2.In Configuration file, select the
+
icon - 3.Check
Use local checkstyle file
& select path touiza_check.xml
file - 4.Select OK & you're ready to go
To run checkstyle for project
- 1.Right click on project
- 2.Select Analyze > Inspect Code
Support all devices which have Android 5.0 (API level 21) above. For a given use case, we aim to support UizaSDK on all Android devices that satisfy the minimum version requirement.
Note: Some Android emulators do not properly implement components of Android’s media stack, and as a result do not support UizaSDK. This is an issue with the emulator, not with UizaSDK. Android’s official emulator (“Virtual Devices” in Android Studio) supports UizaSDK provided the system image has an API level of at least 23. System images with earlier API levels do not support UizaSDK. The level of support provided by third party emulators varies. Issues running UizaSDK on third party emulators should be reported to the developer of the emulator rather than to the UizaSDK team. Where possible, we recommend testing media applications on physical devices rather than emulators.
Patches are encouraged, and may be submitted by forking this project and submitting a pull request through GitHub. Please feel free to contact me anytime: [email protected] for more details.
Address: 33 Ubi Avenue 3 #08- 13, Vertex Tower B, Singapore 408868 Email: [email protected] Website: uiza.io
Last modified 3yr ago