├── README.md
├── README_EN.md
├── android-receiver.apk
├── android_sender.apk
├── image
├── assets
│ ├── css
│ │ └── style.css
│ └── images
│ │ ├── favicon.png
│ │ ├── hero.jpg
│ │ ├── logo-dark.svg
│ │ ├── person-01.jpg
│ │ ├── person-02.jpg
│ │ └── person-03.jpg
├── cast.jpg
├── four.png
├── index.html
├── mac.jpg
├── main.png
├── qrcode.png
├── setup.png
├── v.png
├── win.png
├── win1.png
├── win2.jpg
├── win2.png
├── win3.png
├── win4.png
├── win5.png
├── youtube1.png
└── youtube2.png
├── macOS&Linux
├── README.md
├── airdemo
├── linux-airplay-receiver.png
└── macos-airplay-receiver.png
└── windows-receiver
├── README.md
├── win-airplay.exe
└── win-screen-sender.msi
/README.md:
--------------------------------------------------------------------------------
1 | [[ENGLISH README]](README_EN.md)
2 |
3 | ## AirPlay Receiver For Android & Windows
4 | - [安卓接收端](https://www.pgyer.com/SSKV) | [安卓发送端](https://www.pgyer.com/QfhB) | [官网下载](http://iosair.cn/)
5 | - [Windows 接收端](https://github.com/xfirefly/Airplay-SDK/raw/master/windows-receiver/win-airplay.exe)
6 | - **出售 AirPlay 协议源代码, 可运行在 Linux / Android 等平台**
7 | - 代码深度优化, AirPlay镜像极低延迟, 数万付费用户的选择
8 | - 支持 1080p/2K/4K 镜像分辨率协商和 30/60 fps 镜像帧率协商
9 | - 支持 AirPlay H.265, 这对高分辨率(如 4K)镜像尤其重要
10 | - 支持预设 AirPlay 密码或随机密码,增强安全性
11 | - 支持 YouTube 视频投屏观看(AirPlay HLS 协议)
12 | - 支持 AirPlay ALAC 无损音频传输
13 | - 支持AirPlay/安卓镜像/DLNA , 支持多个AirPlay同时镜像
14 | - 支持iPhone/iPad 使用USB数据线有线投屏,息屏不断开,帧率稳定 60fps
15 | - 支持 Android USB有线投屏, 音画同时镜像, 低延时不卡顿
16 | - iOS和MacOS里, 使用AirPlay协议, 无需安装软件, 直接镜像投屏
17 | - Android 安装投屏客户端App, 实现镜像分屏显示
18 | - 投屏反控, 即Android 接收端反向控制发送端
19 | - 支持倍速播放, 支持4K视频播放, 可以推送爱奇异/腾讯视频/优酷 等App 的4K内容播放 (依赖于接收端硬件规格)
20 | - 对协议层和解码层深度优化, 延迟低, 投屏玩赛车游戏无延迟感(120ms)
21 | - 支持竖屏显示器显示, 手机屏幕可放大显示在广告机等竖屏显示器上
22 | - [Windows系统安装投屏客户端](https://github.com/xfirefly/Airplay-SDK/raw/master/windows-receiver/win-screen-sender.msi), 可以用投屏码 一键投屏到对应接收端. 支持同时镜像电脑屏幕到多个接收端, 接收端也可以同时显示多路屏幕, 即支持一投多和多投一, 适合会议办公, PPT演示
23 |
24 |
25 | ## 联系
26 | - [官网](http://iosair.cn/) | [Gitee]( https://gitee.com/halo-x/Airplay-SDK ) | [Github]( https://github.com/xfirefly/Airplay-SDK ) |
27 | - Email: zsxzy@foxmail.com
28 | - 微信: maxfirefly
29 | - Telegram: https://t.me/maxguguji
30 |
31 |
32 |
33 | ## 功能展示
34 | - MacOS 镜像
35 | 
36 |
37 | - 支持最多四分屏显示功能, 它的优势在于,可以同时展示4份方案内容在大屏幕上。多台电脑或手机,可以同时将屏幕投屏至电视
38 | 
39 |
40 | - 对竖屏显示做了深度优化, 支持 AirPlay / Miracast / 手机端App 竖屏显示, 延时低, 不损失原始画质
41 | 
42 |
43 | ## 投屏教程
44 | 
45 |
46 |
47 | ## 其他问题
48 | App安装到有些平台, 可能出现镜像卡顿延时, 是因为各芯片公司的codec实现差异, 目前这个app主要在Rockchip / 高通手机 平台调试 .
49 | 在 Rockchip 3288 上面是很流畅的, 可以点击链接看看. 为取得最好效果, 需要针对芯片平台调试优化
50 |
51 | [两分屏](https://v.youku.com/v_show/id_XNDI3MjkxMDMwOA==.html?spm=a2h3j.8428770.3416059.1)
52 |
53 | [安卓投屏](https://v.youku.com/v_show/id_XNDI3MjkxMjE5Mg==.html?spm=a2h3j.8428770.3416059.1)
54 |
--------------------------------------------------------------------------------
/README_EN.md:
--------------------------------------------------------------------------------
1 | ## Airplay Receiver For Android & Windows
2 | - [Android Receiver](https://www.pgyer.com/SSKV) | [Android Sender](https://www.pgyer.com/QfhB) | [Download from official website](http://deeprd.com/)
3 | - [Windows receiver](https://github.com/xfirefly/Airplay-SDK/raw/master/windows-receiver/win-airplay.exe)
4 | - **AirPlay protocol source code for sale, compatible with Rockchip Linux, Windows, and Android platforms.**
5 | - Supports AirPlay, Android mirroring, and DLNA; supports simultaneous mirroring for multiple AirPlay devices.
6 | - Supports wired casting for iPhone/iPad via USB cable, maintaining connection even when the screen is off, with a stable 60fps frame rate; ideal for large-screen gaming, live education, live gaming, and in-car casting scenarios.
7 | - Supports Android USB wired screen casting with synchronized audio and video mirroring, delivering clear, lag-free performance.
8 | - For iOS and macOS, utilize the AirPlay protocol for direct screen mirroring without needing to install any software.
9 | - The Android client app enables screen casting with split-screen display functionality.
10 | - Reverse screen control: The Android receiver can control the sender device.
11 | - Supports variable speed playback and 4K video playback; enables casting of 4K content from apps like iQiyi, Tencent Video, and Youku (dependent on receiver hardware specifications).
12 | - Deeply optimized protocol and decoding layers ensure low latency, providing a responsive experience for racing games (120ms latency).
13 | - Supports vertical displays, allowing smartphone screens to be magnified and displayed on vertical screens such as advertising kiosks or digital signage.
14 | - Install the [screen casting client](https://github.com/xfirefly/Airplay-SDK/raw/master/windows-receiver/win-screen-sender.msi) on Windows systems to easily cast your screen to a corresponding receiver using a casting code. Supports simultaneous mirroring from one computer to multiple receivers, and a single receiver can display multiple screens concurrently (one-to-many and many-to-one casting). Ideal for meetings, office use, and PPT presentations.
15 |
16 | ## Specifications
17 | - Supports 1080p/2K/4K resolution and 30/60 fps frame rate negotiation for mirroring.
18 | - Supports AirPlay H.265, crucial for high-resolution (e.g., 4K) mirroring.
19 | - Supports preset or random AirPlay passwords for enhanced security.
20 | - Supports YouTube video casting (AirPlay HLS protocol).
21 | - Supports AirPlay ALAC lossless audio transmission.
22 | - Supports AirPlay, Android mirroring, DLNA, and multiple simultaneous AirPlay streams.
23 | - Supports wired casting for iPhone/iPad via USB; stays connected even when the screen is off, with a stable 60fps.
24 | - Supports Android USB wired casting with synchronized audio/video, low latency, and no lag.
25 | - Native AirPlay mirroring for iOS/macOS (no app installation required).
26 | - Android client app for mirroring with split-screen display support.
27 | - Reverse control: Android receiver controls the sender.
28 | - Supports variable speed playback, 4K video playback, and casting 4K content from various applications.
29 | - Deeply optimized protocol and decoding layers for low latency (120ms), enabling a responsive experience for racing game mirroring.
30 |
31 | ## Android App
32 | - To see the full capabilities of this SDK/Source, check out the showcase Android app in the repository.
33 |
34 | ## Contact us
35 | - Contact us for purchases or inquiries.
36 | - Telegram: https://t.me/maxguguji
37 | - Wechat: maxfirefly
38 | - Email: zsxzy@foxmail.com
39 |
40 | ## Use Cases
41 | - Meeting Room Collaboration: The SDK enables presenters to control presentations while moving freely, fostering more audience interaction, rather than being tethered to a laptop connected to the large screen. Mobile displays can also be broadcast during video conferences or webinars using this technology.
42 |
43 | - Education: The SDK can be used to share content from Apple devices in the classroom. This allows instructors to walk around the room during demonstrations, and students can present their work to the entire class using this technology. The password protection feature restricts unauthorized access.
44 |
45 | - Home Entertainment: The SDK allows users to stream stored videos, songs, and YouTube free content directly to a receiver device over Wi-Fi. It also facilitates easy viewing of photos and videos on a large screen during gatherings with family and friends.
46 |
47 | - Car Infotainment: The SDK allows for wireless screen sharing, playback of audio/video/movies, and photo slideshows from iOS/Mac devices to Android/Embedded Linux-based car infotainment units for viewing by all occupants. This transforms the car into a mobile presentation space, where iOS users can control presentations on the car's display directly from their iOS device.
48 |
49 | ## Picture
50 | 
51 |
--------------------------------------------------------------------------------
/android-receiver.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/android-receiver.apk
--------------------------------------------------------------------------------
/android_sender.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/android_sender.apk
--------------------------------------------------------------------------------
/image/assets/css/style.css:
--------------------------------------------------------------------------------
1 |
2 | * {
3 | -webkit-font-smoothing: antialiased;
4 | -moz-osx-font-smoothing: grayscale;
5 | }
6 |
7 | html {
8 | scroll-behavior: smooth;
9 | -moz-transition: all 2s;
10 | -webkit-transition: all 2s;
11 | transition: all 2s;
12 | }
13 |
14 | body {
15 | font-family: 'Roboto Mono', monospace;
16 | font-size: 12px;
17 | color: #111111;
18 | padding-top: 70px;
19 | }
20 |
21 | .bg-light { background-color: #f5f5f5 !important; }
22 |
23 | h1, h2, h3, h4, h5, h6 {
24 | font-weight: 700;
25 | line-height: 1.6;
26 | }
27 |
28 | a {
29 | color: #111111;
30 | }
31 |
32 | a:hover {
33 | color: #1a1a1a;
34 | text-decoration: none;
35 | }
36 |
37 | .btn {
38 | font-size: 14px;
39 | padding: 15px 26px;
40 | min-width: 160px;
41 | border-radius: 2px;
42 | }
43 | .tlinks{text-indent:-9999px;height:0;line-height:0;font-size:0;overflow:hidden;}
44 | .primary-btn {
45 | background-color: #111111;
46 | color: #ffffff;
47 | }
48 |
49 | .secondary-btn {
50 | background-color: transparent;
51 | border: 1px solid #111111;
52 | }
53 |
54 | .primary-btn:hover {
55 | color: #ffffff;
56 | background-color: #1a1a1a;
57 | border: 1px solid #111111;
58 | }
59 |
60 | .secondary-btn:hover {
61 | background-color: #111111;
62 | color: #ffffff;
63 | }
64 |
65 | .tleft {
66 | text-align: left;
67 | }
68 |
69 | .tright {
70 | text-align: right;
71 | }
72 |
73 | img {
74 | box-shadow: 0 16px 24px 0 rgba(0,0,0,.08);
75 | }
76 |
77 | section {
78 | padding: 120px 0;
79 | }
80 |
81 | section h3 {
82 | font-weight: 700;
83 | }
84 |
85 | section p {
86 | color: #7f7f7f;
87 | font-size: 16px;
88 | font-weight: 300;
89 | line-height: 2;
90 | }
91 |
92 | .full-width {
93 | width: 100%;
94 | }
95 | .topmargin-xs { margin-top: 15px; }
96 | .topmargin-sm { margin-top: 30px; }
97 | .topmargin-lg { margin-top: 60px; }
98 |
99 | .divider-right {
100 | border-right: 1px solid rgba(0,0,0,.1);
101 | }
102 |
103 | /*////////////////////////////
104 | Hero
105 | ///////////////////////////*/
106 |
107 | #hero p {
108 | font-size: 18px;
109 | line-height: 2;
110 | }
111 |
112 | /*////////////////////////////
113 | Navbar
114 | ///////////////////////////*/
115 |
116 | .navbar {
117 | background-color: #ffffff;
118 | box-shadow: 0 2px 4px 0 rgba(0,0,0,.05);
119 | min-height: 100px;
120 | }
121 |
122 | .nav-item {
123 | margin: 0 15px;
124 | }
125 |
126 | .nav-link {
127 | color: #111111;
128 | }
129 |
130 | .navbar-toggler:focus {
131 | outline: none;
132 | box-shadow: none;
133 | }
134 |
135 | .navbar .primary-btn, .navbar .secondary-btn {
136 | padding: 10px 20px;
137 | margin: 0 4px;
138 | font-size: 12px;
139 | }
140 |
141 | .logo {
142 | min-width: 200px;
143 | max-width: 200px;
144 | box-shadow: none;
145 | }
146 |
147 | /*////////////////////////////
148 | Members
149 | ///////////////////////////*/
150 |
151 | .member-container {
152 | position: relative;
153 | margin: 10px 0;
154 | }
155 |
156 | .member-container img {
157 | border-radius: 2px;
158 | }
159 |
160 | .member-information {
161 | position: absolute;
162 | color: #ffffff;
163 | bottom: 10px;
164 | left: 20px;
165 | -moz-transition: all 0.8s;
166 | -webkit-transition: all 0.8s;
167 | transition: all 0.8s;
168 | }
169 |
170 | .member-information:hover {
171 | -moz-transform: translate(0, -15px);
172 | -webkit-transform: translate(0, -15px);
173 | transform: translate(0, -15px);
174 | }
175 |
176 | .member-information h4 {
177 | font-size: 18px;
178 | line-height: .9px;
179 | }
180 |
181 | .member-information p {
182 | color: rgba(256, 256, 256, .7)
183 | }
184 |
185 | .member-information i {
186 | color: #ffffff;
187 | font-size: 22px;
188 | margin-right: 10px;
189 | }
190 |
191 | /*////////////////////////////
192 | Pricing
193 | ///////////////////////////*/
194 |
195 | .pricing-container {
196 | background-color: #ffffff;
197 | border-radius: 2px;
198 | margin: 15px 0;
199 | -moz-transition: all 0.8s;
200 | -webkit-transition: all 0.8s;
201 | transition: all 0.8s;
202 | }
203 |
204 | .pricing-container:hover {
205 | -moz-transform: translate(0, -15px);
206 | -webkit-transform: translate(0, -15px);
207 | transform: translate(0, -15px);
208 | }
209 |
210 | .pricing-header {
211 | border-bottom: 1px solid #f5f5f5;
212 | padding: 30px;
213 | }
214 |
215 | .pricing-header p {
216 | font-size: 14px;
217 | color: #7f7f7f;
218 | }
219 |
220 | .pricing-body {
221 | border-bottom: 1px solid #f5f5f5;
222 | padding: 30px;
223 | }
224 |
225 | .pricing-body ul {
226 | list-style-type: none;
227 | padding-left: 0px;
228 | }
229 |
230 | .pricing-body li {
231 | font-size: 12px;
232 | margin-bottom: 10px;
233 | }
234 |
235 | .pricing-body i {
236 | margin-right: 5px;
237 | }
238 |
239 | .pricing-footer {
240 | text-align: center;
241 | padding: 30px;
242 | }
243 |
244 | .pricing-footer h3 {
245 | line-height: 1.2;
246 | }
247 |
248 | .pricing-footer small {
249 | color: #7f7f7f;
250 | }
251 |
252 | /*////////////////////////////
253 | Contact
254 | ///////////////////////////*/
255 |
256 | #contact {
257 | border-bottom: 1px solid rgba(0,0,0,.1);
258 | }
259 |
260 | #contact h4 {
261 | font-size: 32px;
262 | font-weight: 700;
263 | line-height: 1.6;
264 | }
265 |
266 | #contact p {
267 | font-size: 18px;
268 | line-height: 2;
269 | }
270 |
271 | .form-control {
272 | font-size: 14px;
273 | font-weight: 400;
274 | color: #4b4b4b;
275 | padding: 25px 15px;
276 | border: 1px solid #cacaca;
277 | border-radius: 2px;
278 | }
279 |
280 | .form-control:focus {
281 | border-color: #111111;
282 | outline: none;
283 | box-shadow: none;
284 | }
285 |
286 | /*////////////////////////////
287 | Footer
288 | ///////////////////////////*/
289 |
290 | footer {
291 | padding: 80px 0px;
292 | color: #111111;
293 | }
294 |
295 | footer h6 {
296 | font-size: 18px;
297 | font-weight: 700;
298 | -moz-transition: all 0.8s;
299 | -webkit-transition: all 0.8s;
300 | transition: all 0.8s;
301 | }
302 |
303 | footer p {
304 | color: #7f7f7f;
305 | }
306 |
307 | footer i {
308 | font-size: 14px;
309 | }
310 |
311 | footer a {
312 | color: #111111;
313 | }
314 |
315 | footer a:hover {
316 | color: #4b4b4b;
317 | }
318 |
319 | footer a h6:hover {
320 | -moz-transform: translate(0, -5px);
321 | -webkit-transform: translate(0, -5px);
322 | transform: translate(0, -5px)
323 | }
324 |
325 | /*////////////////////////////
326 | Copyright
327 | ///////////////////////////*/
328 |
329 | #copyright {
330 | padding: 20px 0;
331 | }
332 |
333 | #copyright h6 {
334 | font-weight: 700;
335 | margin-bottom: 0px;
336 | }
337 |
338 | #copyright i {
339 | font-size: 22px;
340 | margin: 0 8px;
341 | }
342 |
343 | /*////////////////////////////
344 | Responsive
345 | ///////////////////////////*/
346 |
347 | @media (max-width: 575.98px) {
348 | .btn {
349 | width: 100%;
350 | margin: 5px 0;
351 | }
352 |
353 | .navbar .primary-btn, .navbar .secondary-btn {
354 | margin: 5px 0;
355 | }
356 |
357 | #hero img {
358 | margin-top: 30px;
359 | }
360 |
361 | .footer-btn {
362 | margin-bottom: 30px;
363 | border-bottom: 1px solid rgba(0,0,0,.1);
364 | }
365 |
366 | #copyright .logo {
367 | margin-top: 20px;
368 | }
369 |
370 | #copyright .list-inline {
371 | text-align: center;
372 | margin-top: 20px;
373 | }
374 |
375 | #copyright i {
376 | font-size: 28px;
377 | }
378 | }
379 |
380 | @media (min-width: 576px) and (max-width: 768px) {
381 | #hero img {
382 | margin-top: 30px;
383 | }
384 |
385 | .member-information h4 {
386 | font-size: 14px;
387 | }
388 |
389 | .member-information p {
390 | font-size: 12px;
391 | margin-bottom: 5px;
392 | }
393 |
394 | .member-information i {
395 | font-size: 18px;
396 | }
397 |
398 | .member-information ul {
399 | margin-bottom: 0px;
400 | }
401 | }
402 |
403 | @media (min-width: 769px) and (max-width: 991.98px) {
404 | .pricing-header, .pricing-body, .pricing-footer {
405 | padding: 20px;
406 | }
407 | #hero img {
408 | margin-top: 30px;
409 | }
410 | }
411 |
412 | @media (min-width: 992px) and (max-width: 1199.98px) { ... }
413 |
414 | @media (min-width: 1200px) { ... }
--------------------------------------------------------------------------------
/image/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/image/assets/images/favicon.png
--------------------------------------------------------------------------------
/image/assets/images/hero.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/image/assets/images/hero.jpg
--------------------------------------------------------------------------------
/image/assets/images/logo-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
323 |
--------------------------------------------------------------------------------
/image/assets/images/person-01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/image/assets/images/person-01.jpg
--------------------------------------------------------------------------------
/image/assets/images/person-02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/image/assets/images/person-02.jpg
--------------------------------------------------------------------------------
/image/assets/images/person-03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/image/assets/images/person-03.jpg
--------------------------------------------------------------------------------
/image/cast.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/image/cast.jpg
--------------------------------------------------------------------------------
/image/four.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xfirefly/Airplay-SDK/079d9e58ba604d7a2f38630add91299db4896eba/image/four.png
--------------------------------------------------------------------------------
/image/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas, cum. Laboriosam 82 | aliquam at 83 | necessitatibus neque soluta deleniti, vero excepturi maxime
84 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas, cum. Laboriosam 139 | aliquam at 140 | necessitatibus neque soluta deleniti, vero excepturi maxime
141 |Customise a solution for your business
147 |Customise a solution for your business
168 |Customise a solution for your business
189 |Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas, cum. Laboriosam aliquam at 215 | necessitatibus.
216 |