作为windows服务的媒体播放器

作为windows服务的媒体播放器,windows,delphi,audio,service,delphi-xe3,Windows,Delphi,Audio,Service,Delphi Xe3,我已经找了一段时间的信息了,但是没有找到任何对我们有用的信息。 我们正在构建一种智能汽车复杂系统,它或多或少地控制着汽车中的一切。。这是一个开发项目,这里没有“重新发明轮子”,只是完全从头开始 由于它将有相当大的负载,我们构建了一台基于i5-proc、8GB内存的PC,在Intel的S335 SSD硬盘上运行Windows Server 2012数据中心 到目前为止,主控制器运行良好,所有控制器对诸如锁定/解锁、侧后视镜移动、车窗移动、完整的climatronic控制、点火、车灯等操作的响应良好

我已经找了一段时间的信息了,但是没有找到任何对我们有用的信息。 我们正在构建一种智能汽车复杂系统,它或多或少地控制着汽车中的一切。。这是一个开发项目,这里没有“重新发明轮子”,只是完全从头开始

由于它将有相当大的负载,我们构建了一台基于i5-proc、8GB内存的PC,在Intel的S335 SSD硬盘上运行Windows Server 2012数据中心

到目前为止,主控制器运行良好,所有控制器对诸如锁定/解锁、侧后视镜移动、车窗移动、完整的climatronic控制、点火、车灯等操作的响应良好。。。然而,我们不能从中播放声音

我们之所以使用all as服务,是因为它根本没有显示器,而是通过WiFi和3G与Android平板电脑和手机以及Windows平板电脑进行通信。我们已经尝试通过远程桌面连接来实现这一点,但这会浪费双方的资源,所以我们宁愿使用Tcp/ip客户机/服务器版本。此外,由于它需要休眠/关机以避免浪费能源,因此即时通电至关重要,无需登录,所有功能都能在几秒钟内完成,这是完美的

所以,我这里的问题是,如何让音乐播放器作为服务运行并播放音频文件,这是我们通过远程应用程序选择的? 远程部分在这里不是问题,而是播放器部分。我尝试了几个delphi演示音乐播放器示例代码转换成服务,但其中nome播放了声音。我想这与服务通常不被允许直接与用户界面交互有关,但我知道这是可能的,只是不知道如何实现

此外,我想这是不可能的,但仍然值得一问:如果我们想将其扩展为视频播放器,这可以在没有任何用户登录的情况下完成吗?例如连接vga/dvi视频监视器,但仅在选择播放视频时显示视频?(在这种情况下,监视器将作为扩展监视器,因此不会显示登录sceen)


我用德尔福提供所有服务。任何信息将不胜感激。谢谢。

我知道解决你们两个问题的办法,但有点麻烦。 (在这一点上,我想指出,首先,我不会做我在这里建议的事情,只是没有提供更多可行的解决方案。不需要“这是一个糟糕的建议”评论——我已经知道了。)


关于我的解决方案:如果您希望使用音频或视频设备在用户界面之外工作,可以通过定制的内核模式驱动程序实现。内核模式驱动程序可以直接与windows服务通信,并可以访问设备中的所有硬件组件。但是,如果您希望使用这种解决方案,您必须处理一些问题:

  • 您不能使用Pascal创建Windows驱动程序(至少不是一个可靠的驱动程序,可能有基于Pascal的开源DDK,但我不知道)。如果你想创建一个windows驱动程序,你必须使用WDK(实际上是和一个强大的IDE如MSV一起使用)
  • 您对计算机软件环境的访问权限有限。(更难读取注册表,更复杂的内存保留等)
  • 编写windows驱动程序是一项非常艰巨的工作。我这样做过几次,我不希望我的死敌也这样做。(存在无意义的约定、过时的数据类型、文档不足的功能……等等。)
  • 没有大型组件和API库可以帮助您创建驱动程序。在0环上,你几乎完全依靠自己
  • 如果windows内核驱动程序有缺陷,它不会抛出异常或正常失败。这将产生BSOD错误,您必须重置系统才能再次获得控制权
更新:

  • 我在开源行业的一位朋友告诉我,有 一种通过Lazarus项目瞄准内核模式驱动程序的方法
  • 一些进一步的研究表明,可能一个过滤器驱动程序也有助于操作 带着他的烦恼。(环0中不存在筛选器驱动程序。)

我知道解决你们两个问题的办法,但有点麻烦。 (在这一点上,我想指出,首先,我不会做我在这里建议的事情,只是没有提供更多可行的解决方案。不需要“这是一个糟糕的建议”评论——我已经知道了。)


关于我的解决方案:如果您希望使用音频或视频设备在用户界面之外工作,可以通过定制的内核模式驱动程序实现。内核模式驱动程序可以直接与windows服务通信,并可以访问设备中的所有硬件组件。但是,如果您希望使用这种解决方案,您必须处理一些问题:

  • 您不能使用Pascal创建Windows驱动程序(至少不是一个可靠的驱动程序,可能有基于Pascal的开源DDK,但我不知道)。如果你想创建一个windows驱动程序,你必须使用WDK(实际上是和一个强大的IDE如MSV一起使用)
  • 您对计算机软件环境的访问权限有限。(更难读取注册表,更复杂的内存保留等)
  • 编写windows驱动程序是一项非常艰巨的工作。我这样做过几次,我不希望我的死敌也这样做。(存在无意义的约定、过时的数据类型、文档不足的功能……等等。)
  • 没有大型组件和API库可以帮助您创建驱动程序。在0环上,你几乎完全依靠自己
  • 如果windows内核驱动程序有缺陷,它不会抛出异常或正常失败。这将产生BSOD错误,您必须重置系统才能再次获得控制权
<