The project's README from github.com/jqssun/android-airplay-server. As one markdown file: README.md.
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.
[!WARNING] DRM content (e.g. from the Apple TV application) is not supported.
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.
Disclaimer: This project is not affiliated with Apple Inc.