react-native-google-cast-android
Instalation
yarn add react-native-google-cast-android
Setup Android
-
Open up
android/app/src/main/java/[...]/MainApplication.java
- Add
import com.reactnative.googlecast.GoogleCastPackage;
to the imports at the top of the file - Add
new GoogleCastPackage()
to the list returned by thegetPackages()
method
- Add
-
Append the following lines to
android/settings.gradle
:include ':react-native-google-cast'.projectDir = new File(rootProject.projectDir, '../node_modules/react-native-google-cast-android/android') -
Insert the following lines inside the
dependencies
block inandroid/app/build.gradle
:dependencies {implementation} -
By default, the react-native-google-cast package automatically loads the latest version (
+
) of the Cast SDK and support libraries as its dependencies. To use a specific version, set it in the rootandroid/build.gradle
:buildscript {ext {buildToolsVersion = "27.0.3"minSdkVersion = 16compileSdkVersion = 27targetSdkVersion = 26supportLibVersion = "26.1.0"castFrameworkVersion = '16.1.2'}}
Make sure the device you're using (also applies to emulators) has Google Play Services installed.
Add to AndroidManifest.xml
Alternatively, you may provide your own OptionsProvider class. For example, to use a custom receiver app:
and don't forget to set your AndroidManifest.xml:
as well as add this to the app/build.gradle:
implementation "com.google.android.gms:play-services-cast-framework:18.0.0"
Change your MainActivity to extend GoogleCastActivity.
; public // ..
If you already extend other class than ReactActivity (e.g. if you use react-native-navigation) or integrate React Native in native app, make sure that the Activity is a descendant of android.support.v7.app.AppCompatActivity. Then add CastContext.getSharedInstance(this); to your Activity's onCreate method (this lazy loads the Google Cast context).
Usage
... //cast button (Visible if has a device nearby)<CastButton tintColor='#fff' //Tint color of button style={} //Inherits View props triggersDefaultCastDialog=true //Default true, if false application must handle cast session start accessibilityLabel=''/> //cast the videoGoogleCast
Video model
To cast a video, the object must be in MediaInfo pattern
mediaUrl: String imageUrl: String title: String subtitle: String studio: String streamDuration: Number // seconds contentType: 'video/mp4' // Optional, default is "video/mp4" playPosition: Number // seconds customData: // Optional, your custom object that will be passed to as customData to reciever customKey: String