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)

Searching Database…

这是什么?这是一个基于 UxPlay 的开源安卓 AirPlay 接收端应用,把你的安卓手机或电视变成兼容 AirPlay 的显示屏和音箱,用来接收来自苹果设备的屏幕镜像、视频播放和音频串流。
它是装在安卓设备上的接收端应用,还是用来发送内容的投屏工具?它是接收端:你把它装到安卓手机、平板或 Android TV 上,之后它就能接受来自同一网络中 iOS、iPadOS、macOS 或其他发送设备的 AirPlay/RAOP 连接。
怎么构建和运行它?它按标准安卓应用构建,但原生的 AirPlay 协议逻辑位于一个基于 C 的 UxPlay 库里,用 CMake 编译并通过 JNI 桥接到 Kotlin,所以你需要先初始化 git 子模块,再到 Android Studio 中构建。
要让原生构建跑起来需要什么?你需要检出 UxPlay 和 FFmpeg 子模块,外加一套支持 CMake 的 Android NDK 工具链,因为 AirPlay/RAOP 协议和音频解码都是用原生 C/C++ 代码实现的,并通过 JNI 链接进 Kotlin 应用。
它能播放 Apple TV 应用这类受 DRM 保护的流吗?不能。受 DRM 保护的内容明确不受支持,所以任何被苹果 DRM 锁定的内容(例如 Apple TV 应用)都无法镜像或播放。
它在 Android TV 上能用,还是仅限手机和平板?都可以:它支持 Android 7.0 及以上版本,包括 Android TV,还专门为电视遥控器添加了方向键导航和进度控制。
除了镜像屏幕,它还能直接播放视频文件吗?可以。它专门支持 HLS 流和已下载视频的播放并带远程控制,还支持音乐播放并显示曲目信息、封面和远程控制,这些都独立于单纯的屏幕镜像。
我能限制谁可以连接到我的接收端吗?可以。它提供可选的 PIN 认证功能,只有输入正确 PIN 的设备才能开始 AirPlay 会话。
有办法调试串流质量问题吗?有。内置的调试悬浮层会实时显示 FPS、码率、编解码器、分辨率、帧数和音量等统计信息,帮助诊断播放问题。
它与其他安卓 AirPlay 应用有什么不同?它号称是首个开源的安卓 AirPlay 2 接收端,把久经考验的 UxPlay 协议实现与经 MediaCodec 和 FFmpeg 进行的 H.264/HEVC 视频解码及 AAC/ALAC 音频解码结合在一起。
Creator
jqssun
Size
0.7 MB
Stars
625
Age
6mo
Commits · 90 Days