Git Product home page Git Product logo

airplay2-win's Introduction

airplay2-win

Airplay2 for windows.

Migrate AirplayServer and dnssd to Windows Platform.

Build

  • Open airplay2-win.sln in Visual Studio 2019.
  • Make airplay-dll-demo as Start Project.
  • Ctrl + B, Build airplay-dll-demo.
  • The generated lib and dll files will be placed in AirPlayServer folder.

Reference

常见问题

  • 可以被iOS设备发现,但无法连接。

    确保iOS和Windows处于同一个Wi-Fi,同一个网段下。如果Windows是在虚拟机中运行,确保使用的是桥接网络,而不是共享网络。

airplay2-win's People

Contributors

fingergit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

airplay2-win's Issues

关于编译提示无法解析plist

image[]

[目的]
想学习大佬的项目,所以就把代码抽离出来 注册和airplay2分开
[环境]
vs2019 win10
[问题]
结果编译airplay2编译提示无法解析plist,我找了很久也没找到plist的实现和第三方库,但是大佬的项目是可以正常运行的。求教

编译时出现错误

\airplay2-win\airplay2\lib\fdk-aac\libFDK\include\fixmul.h(116,10): error C1083: 无法打开包括文件: “x86/fixmul_x86.h”: No such file or directory

交流

能留个联系方式,交流学习一下吗?

qq音乐 还是有问题

播放mv的时候,就卡住缓冲了,打印log有显示mv的地址.然后过一会链接就断了

编译不通过

使用VS 2019打开项目,已经将airplay-dll-demo设置start project
错误信息如图所示:
捕获

初学1天,本来想做个自适应,结果放弃思考了

if (event.user.code == VIDEO_SIZE_CHANGED_CODE) {
				RECT rtc, rtd;
				::SystemParametersInfo(SPI_GETWORKAREA, 0, (PVOID)&rtc, 0);
				::GetWindowRect(GetDesktopWindow(), &rtd); 
				int maxwidth = GetSystemMetrics(SM_CXSCREEN), 
					maxheight = GetSystemMetrics(SM_CYSCREEN),
					
					fullwidth = GetSystemMetrics(SM_CXSCREEN), 
					fullheight = GetSystemMetrics(SM_CYFULLSCREEN), 
					twid = 0, 
					thet = 0;
				
				unsigned int rawwidth = (unsigned int)event.user.data1, 
							rawheight = (unsigned int)event.user.data2;
				double proportion = rawwidth / rawheight;
				bool tskbarpos = rtc.top != rtd.top;
				std::cout
					<< "[Before processing]FullRes: "
					<< maxwidth << ", "
					<< maxheight << ", " << std::endl
					<< "[Before processing]NoTaskbar: "
					<< fullwidth << ", "
					<< fullheight << ", " << std::endl;
				int tskbarwid = (tskbarpos) ? maxheight - fullheight : maxwidth - fullwidth;
				std::cout << "TaskbarWidth: " << tskbarwid << std::endl;
				std::cout 
					<< "BigWidth: " << rawwidth-fullwidth 
					<< "BigHeight: " << rawheight-fullheight << std::endl;

				if (rawwidth > fullwidth | rawheight > fullheight) {
					if (
						((rawwidth > fullwidth) ? rawwidth - fullwidth : fullwidth - rawwidth) 
						> 
						((rawheight > fullheight) ? rawheight - fullheight : fullheight - rawheight) 
						& 
						rawwidth>fullwidth
					   ) {
						int twid = fullwidth - 20;
						std::cout << twid << std::endl;
						std::cout
							<< twid / rawwidth << std::endl
							<< twid / (int)rawwidth << std::endl
							<< (int)twid / (int)rawwidth << std::endl
							<< (double)twid / (double)rawwidth << std::endl;
						int thet = (int)(((double)twid / (double)rawwidth) * (double)rawheight);
					}
					else {
						int thet = fullheight - 20;
						std::cout
							<< thet / rawheight << std::endl
							<< thet / (int)rawheight << std::endl
							<< (int)thet / (int)rawheight << std::endl
							<< (double)thet / (double)rawheight << std::endl
							<< ((double)thet / (double)rawheight) * (double)rawheight << std::endl;
						double twid = (((double)thet / (double)rawheight) * (double)rawwidth);
						// (956/1080)*1440=-9.2559631349317831e+61
					}
				}
				else {
					twid = rawwidth, thet = rawheight;
				}
				std::cout 
					<< "FullRes: "
					<< maxwidth << ", "
					<< maxheight << ", "
					<< "NoTaskbar: "
					<< fullwidth << ", "
					<< fullheight << ", "
					<< "FromIDevices: "
					<< rawwidth << ", "
					<< rawheight << ", "
					<< "Outputting: "
					<< twid << ", "
					<< thet << std::endl;
				/*
				OnInit: 0, 0
				[Before processing]FullRes: 1920, 1080,
				[Before processing]NoTaskbar: 1920, 976,
				TaskbarWidth: 104
				BigWidth: 4294966816BigHeight: 104
				0
				0
				0
				0.885185
				956
				FullRes: 1920, 1080, NoTaskbar: 1920, 976, FromIDevices: 1440, 1080, Outputting: 0, 0
				*/
				if (twid != m_rect.w || thet != m_rect.h || m_yuv == NULL) {
					unInitVideo();
					initVideo(twid, thet);
				}
			}

Crash on multiple device connection

连接iphone和ipad后,程序崩溃退出。
在FgAirplayChannel::decodeH264Data之前正常,运行到ret = avcodec_send_packet(); ;avcodec_receive_frame(); 后程序崩溃退出

Green Screen

Thank you for your work. I have a problem. Can you help me solve it?

When I run Demo successfully and screen cast successfully, I will have a color gamut problem when I open the screen again after stopping the screen for the first time, and the following error will be reported:
lQLPJxZTfTFNcR7M_80CDbDYEDtfKS8FVwKJ2s_FgJ0A_525_255
:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.