react-native-vimeo-iframe
Version:
React Native Vimeo Iframe is a library to render Vimeo videos in a React Native app. This component allows you to embed a Vimeo video in your app and have full access to the Vimeo player JS API (more information https://developer.vimeo.com/player/js-api).
94 lines (77 loc) • 5.37 kB
Markdown
React Native Vimeo Iframe is a library to render Vimeo videos in a React Native app.
This component allows you to embed a Vimeo video in your app and have full access to
the Vimeo player JS API (more information https://developer.vimeo.com/player/js-api).
## Installation
1. Go through the instructions for installing the
`React Native Webview` library: https://github.com/react-native-webview/react-native-webview.
2. Run `npm install react-native-vimeo-iframe` or `yarn add react-native-vimeo-iframe` within your project.
3. Compile and build to make sure everything is set up properly.
## Usage
```
const videoCallbacks = {
timeupdate: (data: any) => console.log('timeupdate: ', data),
play: (data: any) => console.log('play: ', data),
pause: (data: any) => console.log('pause: ', data),
fullscreenchange: (data: any) => console.log('fullscreenchange: ', data),
ended: (data: any) => console.log('ended: ', data),
controlschange: (data: any) => console.log('controlschange: ', data),
};
return (
<Vimeo
videoId={'712158285'}
params={'api=1&autoplay=0'}
handlers={videoCallbacks}
/>
)
```
```
'controlschange', // The visibility of the controls changed.
'fullscreenchange', // The orientation was changed.
'audioprocess', // A entrada do buffer de ScriptProcessorNode está pronta para ser processada
'canplay', // The browser can play the file, but estimates that there will not be enough data to play the file without interruption to reload the buffer.
'canplaythrough', // The browser estimates that it will be able to play the file without interruption until the end.
'complete', // OfflineAudioContext rendering is finished.
'durationchange', // The duration attribute has been updated.
'emptied', // Absence of content. For example, this event is sent if the media has been loaded (or partially) and the load() method has been called to reload the content.
'ended', // Playback ended due to end of content
'loadeddata', // The first frame of media has been loaded.
'loadedmetadata', // The metadata has been loaded.
'pause', // Playback has been paused.
'play', // Playback has started.
'playing', // Playback is ready to start after being paused, or delayed due to lack of data.
'ratechange', // Playback rate has changed.
'seeked', // Search operation completed.
'seeking', // Search operation started.
'stalled', // The user agent is trying to fetch media data, but data is unexpectedly not forthcoming.
'suspend', // Media data loading has been suspended.
'timeupdate', // The time indicated by the currentTime attribute has been updated.
'volumechange', // The volume has changed.
'waiting'
```
| Name | Type | Default | Description |
| ------------ | ------------------------ | --------- | -------------------------------------------------------------------------------- |
| `handlers` | `{ [key: string]: any }` | {} | Listeners to be attached in the Vimeo Player |
| `videoId` | `string` | undefined | The video id which will be rendered |
| `params` | `string` | undefined | Extra params to be attached on the vimeo player url |
| `reference` | `string` | undefined | In order to support private videos you can specify the reference prop |
| `otherProps` | `WebViewProps` | {} | To customize the webview that wraps the player, you can specify additional props |
If you want to see `MetaLabs-inc/react-native-vimeo-iframe` in action, just move into the [example](/example) folder and run `yarn && cd ios && pod install && cd .. && yarn ios` or `yarn && yarn android`. By seeing its source code, you will have a better understanding of the library usage.
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://github.com/Marcoo09"><img src="https://avatars.githubusercontent.com/Marcoo09" width="100px;" alt=""/><br /><sub><b>Marco Fiorito</b></sub></a></td>
<td align="center"><a href="https://github.com/douglasrosa0110"><img src="https://avatars.githubusercontent.com/douglasrosa0110" width="100px;" alt=""/><br /><sub><b>Douglas Rosa</b></sub></a></td>
<td align="center"><a href="https://github.com/felipe-najson"><img src="https://avatars.githubusercontent.com/felipe-najson" width="100px;" alt=""/><br /><sub><b>Felipe Najson</b></sub></a></td>
<td align="center"><a href="https://github.com/yjb94"><img src="https://avatars.githubusercontent.com/yjb94" width="100px;" alt=""/><br /><sub><b>JB Paul</b></sub></a></td>
<td align="center"><a href="https://github.com/SalmanK81099"><img src="https://avatars.githubusercontent.com/SalmanK81099" width="100px;" alt=""/><br /><sub><b>Salman Khan</b></sub></a></td>
</tr>
</table>
- [@Myagi](https://github.com/Myagi) for `react-native-vimeo`, I based on that library to make that library with the latest versions of react-native.