- Introduction to Data
- Track your video performance
- HTML5 video element
- HLS.js
- AVPlayer
- ExoPlayer
- Dash.js
- Video.js
- React native video
- Kaltura (android)
- Kaltura (iOS)
- Kaltura (web)
- JW Player (web)
- JW Player (iOS)
- Android MediaPlayer
- Bitmovin player
- Akamai media player
- NexPlayer
- Ooyala player
- Shaka player
- Azure media player
- THEOplayer (web)
- THEOplayer (iOS)
- Flowplayer
- Brightcove (web)
- Brightcove (iOS)
- Brightcove (android)
- CTS PDK
- Chromecast
- Roku
- Samsung (Tizen)
- LG
- Agnoplay player
- Make API requests
- Setup alerts
- Make your data actionable with metadata
- Track autoplaying videos
- Extend Data with custom metadata
- Track CDN for request metrics
- See how many people are watching
- Build a custom integration
- Understand metric definitions
- Export raw video view data
- Ensure privacy compliance
- Mux Data FAQs
Monitor React native video
This guide walks through integration with react-native-video to collect video performance metrics with Mux Data.
In this guide:
1
Install mux-stats-sdk-react-native-video
1
Install mux-stats-sdk-react-native-video
Install mux-stats-sdk-react-native-video
from GitHub.
2
Wrap your Video component
2
Wrap your Video component
Wrap your react-native-video component in the muxReactNativeVideo SDK
3
Make your data actionable
3
Make your data actionable
Use metadata fields to make the data collected by Mux actionable and useful.
Release Notes
Release Notes
Beta SDK
This SDK is currently beta. It can be installed from the GitHub source. When this SDK gets published for general release it will be available on NPM.
See the Known Issues and Caveats in the README on GitHub.
Install from GitHub in your package.json (when this is officially released then it will be available on NPM).
yarn add "https://github.com/muxinc/mux-stats-sdk-react-native-video#v0.1.0"
OR
npm install "https://github.com/muxinc/mux-stats-sdk-react-native-video#v0.1.0" --save
Get your ENV_KEY
from the Mux environments dashboard.
Env Key is different than your API token
ENV_KEY
is a client-side key used for Mux Data monitoring. These are not to be confused with API tokens which are created in the admin settings dashboard and meant to access the Mux API from a trusted server.
Wrap your Video
component with the muxReactNativeVideo
higher-order-component.
import app from './package.json' // this is your application's package.json import Video from 'react-native-video'; // import Video from react-native-video like your normally would import muxReactNativeVideo from 'mux-react-native-video-sdk'; // wrap the `Video` component with Mux functionality const MuxVideo = muxReactNativeVideo(Video); // Pass the same props to `MuxVideo` that you would pass to the // `Video` element. All of these props will be passed through to your underlying react-native-video component // Include a new prop for `muxOptions` <MuxVideo style={styles.video} source={{ uri: 'https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8', }} controls muted muxOptions={{ application_name: app.name, // (required) the name of your application application_version: app.version, // the version of your application (optional, but encouraged) data: { env_key: 'YOUR_ENVIRONMENT_KEY', // (required) video_id: 'My Video Id', // (required) video_title: 'My awesome video', player_software_version: '5.0.2' // (optional, but encouraged) the version of react-native-video that you are using player_name: 'React Native Player', // See metadata docs for available metadata fields https://docs.mux.com/docs/web-integration-guide#section-5-add-metadata }, }} />
The required fields in the muxOptions
that you pass into the MuxVideo
component are application_name
, data.env_key
and data.video_id
. However, without some metadata the metrics in your dashboard will lack the necessary information to take meaningful actions. Metadata allows you to search and filter on important fields in order to diagnose issues and optimize the playback experience for your end users.
Pass in metadata under the data
on initialization.
muxOptions={{ application_name: app.name, // (required) the name of your application application_version: app.version, // the version of your application (optional, but encouraged) data: { env_key: 'ENV_KEY', // Site Metadata viewer_user_id: '', // ex: '12345' experiment_name: '', // ex: 'player_test_A' sub_property_id: '', // ex: 'cus-1' // Player Metadata player_name: '', // ex: 'My Main Player' player_version: '', // ex: '1.0.0' player_init_time: '', // ex: 1451606400000 // Video Metadata video_id: '', // ex: 'abcd123' video_title: '', // ex: 'My Great Video' video_series: '', // ex: 'Weekly Great Videos' video_duration: '', // in milliseconds, ex: 120000 video_stream_type: '', // 'live' or 'on-demand' video_cdn: '' // ex: 'Fastly', 'Akamai' }, }} });
For more information, view Make your data actionable.
Current release
v0.3.0
- Fix an issue where
playerID
isnull
when wrapping the component with react-native-video-controls.
v0.2.0
- Update
mux-embed
to v4.2.0 - Fix an issue where views that resulted from
programchange
may not have been tracked correctly - Fix an issue where if
destroy
was called multiple times, it would raise an exception
Previous releases
v0.1.0
- Initial release