您是否正在寻找一种从.NET MAUI应用程序传输现场或点播视频到Google Cast设备的方法?在这篇文章中,您将在短短9分钟内学习如何找到并连接到Chromecast设备。准备好播放视频了?
特别感谢我们的朋友Gerald,他与我们分享了这个惊人的article,它帮助我将Chromecast支持集成到我的.NET MAUI应用程序中。
所需的包装和项目条件
- 添加启用iOS和Android上的Google Cast所需的Nuget软件包,或编辑 .csproj 文件并将它们设置在此处:
全部
<ItemGroup>
<PackageReference Include="protobuf-net" Version="3.2.26" />
</ItemGroup>
android
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0-android'">
<PackageReference Include="Xamarin.GooglePlayServices.Cast" Version="121.1.0" />
<PackageReference Include="Xamarin.GooglePlayServices.Cast.Framework" Version="121.1.0" />
</ItemGroup>
ios
<ItemGroup Condition="'$(TargetFramework)' == 'net7.0-ios'">
<PackageReference Include="Xamarin.Google.iOS.Cast" Version="4.7.0.1" />
</ItemGroup>
所需的解决方法
好吧,让我与您分享一些新闻,包装Google Cast on NuGet真的很酷,但是,这个包裹有2个问题,而且要清楚我不是在责怪任何人,完全相反,我想谢谢所有参与这些包裹及其依赖关系的人。
Google Cast软件包对Zeroconf软件包具有依赖性,但是,Zeroconf软件包在iOS 16+上有一个问题,幸运的是我们的朋友Martin在Zeroconf存储库上创建了一个Pull-Request,该存储库可以在发现iOS 16+问题时发现Chromecast时,网络中的设备。
我的建议是下载或克隆以下Pull-Request,然后将此项目添加到您的.NET MAUI应用程序中。请参阅下面的重要说明:
***重要
从Zeroconf项目更新 .csproj ,然后替换以下内容:
来自
<TargetFrameworks>net6.0;netstandard2.0;net48;xamarinios10</TargetFrameworks>
<TargetFrameworks>net7.0;netstandard2.0;net7.0-ios</TargetFrameworks>
最后,关闭解决方案并重新打开它,请确保在尝试还原包装时没有错误,并且将设置为您。
最后一个解决方法
由于我们将使用我们从 zeroconf (Google Cast nuget软件包)克隆的项目,因此无法正常工作。因此,我们还需要克隆repository的最新主要版本,并将项目转换为.NET MAUI兼容的类库,或者如果您愿意,请直接在.NET MAUI Project中添加Google Cast存储库中的所有源文件,这就是全部。
下一步是什么?
从这一点开始,.NET MAUI实现与我们的朋友Gerald在他的帖子上分享的几乎相同,因此我建议您在此处查看,直接在内容页面上或使用MVVM非常容易实现。
结论
由于与iOS 16的依赖关系缺乏兼容性,因此我们被迫回头,直到我们找出问题的根本原因。我认为这是一个学习更多并提高技能的机会。当Zeroconf软件包更新以支持iOS 16时,我们可以使用新版本,它将替换Google Cast Package使用的版本。
感谢您的阅读!在Twitter @ivictorhugo上关注我