问题标签 [carplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
103 浏览

swift - 如何在 CP 模板中进行 uiview

我正在尝试用 carplay webview 替换此示例项目的 carplay 应用程序上地图


这里返回根模板的函数,将在CarPlay上显示:

问题是,setRootTemplate 函数需要一个 CPTemplate,而我不知道如何创建模板并在其上放置一个 uiview?

我也试过 WKWebView

非常感谢 !

PS:这个应用是我自己使用的,我不会发送到应用商店。

0 投票
1 回答
400 浏览

swift - 无法在 Carplay 音乐上显示专辑封面

我正在构建一个可以与Apple Carplay集成的iOS音乐应用程序,我可以在Carplay上正常播放音乐,并且可以显示歌曲的一些信息,如标题、专辑、艺术家姓名。但是无法显示专辑封面。

这是在 Carplay 上显示媒体信息的批量代码:

这是我当前的应用程序:

在此处输入图像描述

这就是我想要的:

在此处输入图像描述

那我该怎么办?请帮我找到解决方案。

0 投票
1 回答
226 浏览

ios - 以编程方式更改 CPTabBarTemplate 的 selectedTemplate

我正在尝试了解有关 CarPlay 的更多信息。具体使用CPTabBarTemplate(截至 2020 年和 iOS 14 的新模板)。
我要做的是以编程方式更改selectedTemplate,就像我在更新 aselectedTab中的UITabBar.
一个示例流程是CPTabBarTemplate带有两个选项卡的。一个CPPointOfInterestTemplate和一个CPInformationTemplate

用户可以选择一个兴趣点,然后从 poi 详细信息屏幕中选择一个可能显示“选择”的按钮,就像 Apple 在他们的WWDC20 演讲中的示例一样。 在此处输入图像描述

按下“选择”后,我想以编程方式将用户带到其中informationTemplatetabBarTemplate然后使用所选位置的详细信息在informationTemplate.

我可能不理解 Apple 期望CPTabBarTemplate的使用方式。确实存在 的selectedTab属性CPTabBarTemplate。但是,该属性是get唯一的。这让我相信切换标签的理想方式是让用户自己点击下一个标签。

我会很感激任何见解。如果有人知道如何以编程方式更新 a 的选定选项卡,CPTabBarTemplate那将是花花公子。

谢谢阅读!

0 投票
1 回答
292 浏览

ios - 播放歌曲时播放/暂停按钮不更新

我正在构建一个可以与 CarPlay 集成的音乐应用程序,一切都很好……我可以在音乐播放器上显示艺术家姓名、标题、专辑名称和一些按钮控制器。但是,有一个问题是,当我从 CarPlay 播放任何歌曲时,CarPlay 上的按钮不会像 iOS 设备上的按钮那样更新,并且搜索时间不会移动。

我应该怎么办 ?我搜索了许多资源以找到解决方案,但仍然没有。

在此处输入图像描述

在此处输入图像描述

注意:我只是在模拟器(不是真实设备)上测试它。

这是 PlayingInfor 节目:

这是句柄 RemoteCommandEvent:

0 投票
1 回答
333 浏览

ios - CarPlay - 在 iOS 13 中显示正在播放的屏幕

我的应用程序已经是手机上当前的“正在播放的应用程序”(即所有必需的信息都已提供给MPNowPlayingInfoCenter),并且它正确显示在锁定屏幕中,包括艺术家姓名、曲目标题、艺术品图像等。

根据文档,填充MPNowPlayingInfoCenter.default().nowPlayingInfo和添加正确的目标/操作MPRemoteCommandCenter 应该足以确保当用户点击Now Playing图标时在 CarPlay 中调用您的应用程序。

在 iOS 14 上,我设法通过推送到堆栈来实现上述目标CPNowPlayingTemplate,这要归功于我在本文中发现的一些巧妙技巧。

不过,在 iOS 13 上,一切都基于可怕的MPPlayableContentManagerAPI,并且没有CPTemplateApplicationSceneDelegate为基于音频的应用程序调用任何方法,我根本找不到方法来检测是否/何时显示“正在播放”屏幕。

MPNowPlayingInfoCenter并且MPRemoteCommandCenter配置正确 - 如上所述 - 但在 iOS 13 上点击 CarPlay 中的“正在播放”图标时,我的应用程序没有被拾取。

我认为这个 API会帮助我,但我不知道如何(它总是返回一个空数组)。

唯一的解决方法似乎是添加<key>UIBrowsableContentSupportsImmediatePlayback</key><true/>到您的Info.plist: Now Playing 得到正确显示,但它立即开始播放,这不是我想要的。

谁能提供一个可行的解决方案?

0 投票
0 回答
209 浏览

ios - 为什么 CarPlay 在真车中会崩溃?

我有一个音频应用程序并实现了 CarPlay,我已按照本指南添加 CarPlay 支持:https ://blog.fethica.com/add-carplay-support-to-swiftradio/#

该应用程序使用 com.apple.developer.playable-content 权利和媒体播放器框架,据我所知,这是在 iOS 13 及更低版本上将 CarPlay 添加到音频应用程序的唯一方法,但仍向后兼容 iOS 14(尽管 iOS 14 有一个新的 carplay 音频框架)。我所有的 CarPlay 逻辑都是在我的主 AppDelegate 的扩展中编写的(这可能有问题吗?)

在模拟器中,一切正常,音频在外部模拟汽车显示器中播放。但是我的团队在一辆真实的汽车上测试了这个应用程序,当从汽车显示屏上打开应用程序时,它立即崩溃了。

在 iOS 14.4 上的 iPhone 11 Pro 上测试时,我在这里有崩溃日志:

什么可能导致应用程序在真车中崩溃但在模拟器中运行良好?这是我的 AppDelegate 的一部分,我在其中调用一个函数来设置 carplay:

AppDelegate+CarPlay.swift

CarPlayPlaylist.swift

0 投票
1 回答
100 浏览

ios - 单击 CPDashboardController 中的 CPDashboardButton 后如何在 CarPlay 仪表板中启动应用程序

我有导航应用程序,现在我正在开发 CarPlay 仪表板。单击 CPDashboard 中的按钮后,我无法启动 InterfaceController。

在此处输入图像描述

我的按钮代码:

点击按钮后,调用 func openSearchView(),但视图仍保留在仪表板中。

文档中没有信息,我们如何在视图之间切换(界面控制器 <-> 仪表板控制器)

0 投票
0 回答
16 浏览

carplay - 我可以在特定应用或“多应用”视图中保留 Car Play 吗?

是否可以:

a) 防止司机离开应用程序视图“多应用程序”视图 b) 在任何给定时间强制打开应用程序(例如,他们的目的地即将到来,我想向他们展示地图,以便他们知道在哪里停车)

当然,我不想在没有司机意图的情况下覆盖系统。这个想法是,司机首先通过与应用程序互动来同意这份合同——例如打开导航。

谢谢!

0 投票
1 回答
67 浏览

ios - CarPlay 的 UI 测试

是否可以使用 XCTest 框架为 CarPlay 添加 UI 测试?

这是我拥有的基本 UI 测试,但它不会启动 CarPlay 的扩展显示。

0 投票
0 回答
140 浏览

ios - SwiftUI + CarPlay - 音频播放器

因此,我们拥有在 CarPlay 上运行我们的应用程序的正确权限 - Apple 批准。但是他们说它是基于模板的,我们需要做的就是连接到以下命令。

以及媒体正在播放信息——这很容易,因为我们已经通过批准的方法做到了

所以我想知道要做什么步骤

在 SwiftUI 中。顺便说一句,我们不需要 MFI 来获得这些权限,因为我们是广播电台/音频应用程序。