78 lines
3.5 KiB
Markdown
78 lines
3.5 KiB
Markdown
|
# Miscellaneous
|
||
|
|
||
|
## iOS App Transport Security
|
||
|
|
||
|
- By default, iOS will only load encrypted (https) urls. If you want to load content from an unencrypted (http) source, you will need to modify your Info.plist file and add the following entry:
|
||
|
|
||
|
![App Transport Security](../../assets/AppTransportSecuritySetting.png)
|
||
|
|
||
|
For more detailed info check this [article](https://cocoacasts.com/how-to-add-app-transport-security-exception-domains)
|
||
|
</details>
|
||
|
|
||
|
## Audio Mixing
|
||
|
|
||
|
At some point in the future, react-native-video will include an Audio Manager for configuring how videos mix with other apps playing sounds on the device.
|
||
|
|
||
|
On iOS, if you would like to allow other apps to play music over your video component, make the following change:
|
||
|
|
||
|
**AppDelegate.m**
|
||
|
|
||
|
```objective-c
|
||
|
#import <AVFoundation/AVFoundation.h> // import
|
||
|
|
||
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||
|
{
|
||
|
...
|
||
|
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil]; // allow
|
||
|
...
|
||
|
}
|
||
|
```
|
||
|
|
||
|
You can also use the [ignoreSilentSwitch](#ignoresilentswitch) prop.
|
||
|
</details>
|
||
|
|
||
|
## Android Expansion File Usage
|
||
|
Expansions files allow you to ship assets that exceed the 100MB apk size limit and don't need to be updated each time you push an app update.
|
||
|
|
||
|
This only supports mp4 files and they must not be compressed. Example command line for preventing compression:
|
||
|
```bash
|
||
|
zip -r -n .mp4 *.mp4 player.video.example.com
|
||
|
```
|
||
|
|
||
|
```javascript
|
||
|
// Within your render function, assuming you have a file called
|
||
|
// "background.mp4" in your expansion file. Just add your main and (if applicable) patch version
|
||
|
<Video source={{uri: "background", mainVer: 1, patchVer: 0}} // Looks for .mp4 file (background.mp4) in the given expansion version.
|
||
|
resizeMode="cover" // Fill the whole screen at aspect ratio.
|
||
|
style={styles.backgroundVideo} />
|
||
|
```
|
||
|
|
||
|
## Load files with the RN Asset System
|
||
|
|
||
|
The asset system [introduced in RN `0.14`](http://www.reactnative.com/react-native-v0-14-0-released/) allows loading image resources shared across iOS and Android without touching native code. As of RN `0.31` [the same is true](https://github.com/facebook/react-native/commit/91ff6868a554c4930fd5fda6ba8044dbd56c8374) of mp4 video assets for Android. As of [RN `0.33`](https://github.com/facebook/react-native/releases/tag/v0.33.0) iOS is also supported. Requires `react-native-video@0.9.0`.
|
||
|
|
||
|
```javascript
|
||
|
<Video
|
||
|
source={require('../assets/video/turntable.mp4')}
|
||
|
/>
|
||
|
```
|
||
|
|
||
|
## Play in background on iOS
|
||
|
|
||
|
To enable audio to play in background on iOS the audio session needs to be set to `AVAudioSessionCategoryPlayback`. See [Apple documentation][3] for additional details. (NOTE: there is now a ticket to [expose this as a prop]( https://github.com/react-native-community/react-native-video/issues/310) )
|
||
|
|
||
|
## Examples
|
||
|
|
||
|
- See an [Example integration][1] in `react-native-login` *note that this example uses an older version of this library, before we used `export default` -- if you use `require` you will need to do `require('react-native-video').default` as per instructions above.*
|
||
|
- Try the included [VideoPlayer example][2] yourself:
|
||
|
|
||
|
```sh
|
||
|
git clone git@github.com:react-native-community/react-native-video.git
|
||
|
cd react-native-video/example
|
||
|
npm install
|
||
|
open ios/VideoPlayer.xcodeproj
|
||
|
```
|
||
|
|
||
|
Then `Cmd+R` to start the React Packager, build and run the project in the simulator.
|
||
|
|
||
|
- [Lumpen Radio](https://github.com/jhabdas/lumpen-radio) contains another example integration using local files and full screen background video.
|