An open API service indexing awesome lists of open source software.

https://github.com/tien/react-airplay

Airplay bridge for React Native
https://github.com/tien/react-airplay

airplay cast ios react react-native

Last synced: 2 months ago
JSON representation

Airplay bridge for React Native

Awesome Lists containing this project

README

          

# react-airplay

[![npm](https://img.shields.io/npm/v/react-airplay)](https://www.npmjs.com/package/react-airplay)
![NPM Downloads](https://img.shields.io/npm/dw/react-airplay)

Airplay bridge for React Native.

## Installation

```sh
yarn add react-airplay
npx pod-install
```

## Usage

```tsx
import {
AirplayButton,
showRoutePicker,
useAirplayConnectivity,
useExternalPlaybackAvailability,
useAvAudioSessionRoutes,
} from "react-airplay";
import { Button, Text, View } from "react-native";

export function App() {
const isAirplayConnected = useAirplayConnectivity();
const isExternalPlaybackAvailable = useExternalPlaybackAvailability();
const routes = useAvAudioSessionRoutes();

return (

{isExternalPlaybackAvailable && (
<>

showRoutePicker({ prioritizesVideoDevices: true })}
/>
>
)}
{routes.length > 0 && (

Currently playing on{" "}
{routes.map((route) => route.portName).join(", ")}

)}

);
}
```

### Note

Enabling route detection increase power consumption, as per [Apple documentation](https://developer.apple.com/documentation/avfoundation/avroutedetector/2915762-isroutedetectionenabled). So be sure to un-mount the component when not in use, if that's not possible (e.g. when component is part of a `react-navigation` screen) the `enabled` option parameter can be used:

```typescript
import { useIsFocused } from "@react-navigation/native";
import { useExternalPlaybackAvailability } from "react-airplay";

const isScreenFocused = useIsFocused();

const isExternalPlaybackAvailable = useExternalPlaybackAvailability({
enabled: isScreenFocused,
});
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT