android-airplay-server README

The project's README from github.com/jqssun/android-airplay-server. As one markdown file: README.md.

AirPlay Receiver for Android

Stars GitHub license build release

A fully featured free and open-source implementation of AirPlay for Android that turns your device into an AirPlay-compatible display and speaker, based on UxPlay. It is the first open-source AirPlay 2 receiver for Android and Android TV, and works with iOS/iPadOS, macOS devices as well as other sender implementations.

Get it on Google Play Get it on F-Droid Get it on GitHub

Compatibility

Features

[!WARNING] DRM content (e.g. from the Apple TV application) is not supported.

Implementation

This application uses the C-based UxPlay library to implement the AirPlay/RAOP protocol, with a JNI bridge to the Android application layer. Audio can be decoded via MediaCodec or a software ALAC decoder, while mirroring video is decoded via MediaCodec and rendered to a SurfaceView. HLS sessions are served through a local playlist proxy.

flowchart LR
    AppleDevice["Apple Device (Sender)"]
    UxPlay["UxPlay (C/JNI)<br/>RAOP + mDNS<br/>FairPlay + HLS"]
    AndroidApp["Android (Receiver)<br/>MediaCodec + AudioTrack<br/>ExoPlayer (HLS)"]

    AppleDevice -- "RAOP / HLS" --> UxPlay
    UxPlay --> AndroidApp

CMake is used for native C/C++ components under app/src/main/cpp. Submodules must be initialized before building.

git submodule update --init --recursive
./gradlew assembleDebug

Check out the CI for more details on reproducible builds.

Credits


Disclaimer: This project is not affiliated with Apple Inc.

android-airplay-server (jqssun/android-airplay-server)

media-player
Searching Database…

What is this?It's an open-source AirPlay receiver app for Android, built on UxPlay, that turns your Android phone or TV into an AirPlay-compatible display and speaker for screen mirroring, video playback, and audio streaming from Apple devices.
Is this a receiver app I install on my Android device, or a casting tool for sending content?It's a receiver: you install it on an Android phone, tablet, or Android TV, and it then accepts AirPlay/RAOP connections from iOS, iPadOS, macOS, or other sender devices on the same network.
How do I build and run it?It's built as a standard Android app, but the native AirPlay protocol logic lives in a C-based UxPlay library compiled with CMake and bridged to Kotlin via JNI, so you need to initialize git submodules before building in Android Studio.
What do I need to get the native build working?You need the UxPlay and FFmpeg submodules checked out, plus a CMake-capable Android NDK toolchain, since the AirPlay/RAOP protocol and audio decoding are implemented in native C/C++ code linked into the Kotlin app via JNI.
Will it play DRM-protected streams like the Apple TV app?No, DRM-protected content is explicitly unsupported, so anything locked by Apple's DRM (e.g. the Apple TV app) won't mirror or play.
Does it work on Android TV, or just phones and tablets?Both: it supports Android 7.0 and up, including Android TV, with directional pad navigation and seeking controls specifically added for TV remotes.
Can it do more than mirror my screen, like playing a video file directly?Yes, it has dedicated video playback support for HLS streams and downloads with remote controls, plus music playback with track info, cover art, and remote controls, separate from plain screen mirroring.
Can I lock down who's allowed to connect to my receiver?Yes, there's an optional PIN authentication feature so only devices that enter the correct PIN can start an AirPlay session.
Is there a way to debug streaming quality issues?Yes, a built-in debug overlay shows real-time stats like FPS, bitrate, codec, resolution, frame count, and audio volume to help diagnose playback problems.
What makes this different from other AirPlay apps for Android?It's billed as the first open-source AirPlay 2 receiver for Android, combining the proven UxPlay protocol implementation with native H.264/HEVC video decoding and AAC/ALAC audio decoding via MediaCodec and FFmpeg.
Creator
jqssun
Size
0.7 MB
Stars
612
Age
6mo
Commits · 90 Days