Skip to content

Spicy-Sparks/react-native-airplay-module

Repository files navigation

react-native-airplay-module

AirPlay library for React Native

Installation with Automatic Linking

npm i react-native-airplay-module --save
react-native link

Check the example project

Make sure to enable Swift support in your project, if you haven't done it yet. Xcode -> New file -> Swift file -> Create bridging headers

How to create listeners

import { AirPlayListener, AirPlay } from react-native-airplay-module

AirPlay.startScan()

this.deviceConnected = AirPlayListener.addListener(
  'deviceConnected',
  ({ connected, mirroring, devices }) => this.setState({
    devices,
    connected,
    mirroring
  })
); --> returns a boolean

this.deviceConnected.remove();

The result is an object that contains information about currently connected audio output(s):

{
  devices: [{
    deviceName: "Some Bluetooth Headphones Model",
    portType: "BluetoothA2DPOutput",
    isHeadphones: true
  }],
  connected: true,
  mirroring: false
}

// or
{
  devices: [{
    deviceName: "Speakers",
    portType: "Speakers",
    isHeadphones: false
  }],
  connected: true,
  mirroring: false
}

// or
{
  devices: [{
    deviceName: "Andrey’s Apple TV",
    portType: "AirPlay",
    isHeadphones: false
  }],
  connected: true,
  mirroring: true
}

Methods

AirPlay.startScan();

AirPlay.disconnect();

Author

Original author of the library:

Nadia Dillon

Modifications:

Andrey Efremov (gazedash)

Spicy Sparks

Contributing

Pull requests are welcome!