- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
有谁知道如何从 CarPlay 的 ListView 中删除小云图标?我附上了它的截图。这些电台只能直播,不可下载。我还将代码包含在我的 Carplay-AppDelegate、CarPlay-Playlist 和 CarPlay-StationList 中。谢谢
CARPLAY-APPDELEGATE 代码:
import Foundation
import MediaPlayer
extension AppDelegate {
func setupCarPlay() {
playableContentManager = MPPlayableContentManager.shared()
playableContentManager?.delegate = self
playableContentManager?.dataSource = self
stationsViewController?.setupRemoteCommandCenter()
stationsViewController?.updateLockScreen(with: nil)
}
}
extension AppDelegate: MPPlayableContentDelegate {
func playableContentManager(_ contentManager: MPPlayableContentManager, initiatePlaybackOfContentItemAt indexPath: IndexPath, completionHandler: @escaping (Error?) -> Void) {
DispatchQueue.main.async {
UIApplication.shared.beginReceivingRemoteControlEvents()
if indexPath.count == 2 {
let station = self.carplayPlaylist.stations[indexPath[1]]
self.stationsViewController?.selectFromCarPlay(station)
}
completionHandler(nil)
// Workaround to make the Now Playing working on the simulator:
// Source: https://stackoverflow.com/questions/52818170/handling-playback-events-in-carplay-with-mpnowplayinginfocenter
// UIApplication.shared.endReceivingRemoteControlEvents()
// UIApplication.shared.beginReceivingRemoteControlEvents()
}
}
func beginLoadingChildItems(at indexPath: IndexPath, completionHandler: @escaping (Error?) -> Void) {
carplayPlaylist.load { error in
completionHandler(error)
}
}
}
extension AppDelegate: MPPlayableContentDataSource {
func numberOfChildItems(at indexPath: IndexPath) -> Int {
if indexPath.indices.count == 0 {
return 1
}
return carplayPlaylist.stations.count
}
func contentItem(at indexPath: IndexPath) -> MPContentItem? {
if indexPath.count == 1 {
// Tab section
let item = MPContentItem(identifier: "Stations")
item.title = "Stations"
item.isContainer = true
item.isPlayable = false
item.artwork = MPMediaItemArtwork(boundsSize: #imageLiteral(resourceName: "carPlayTab").size, requestHandler: { _ -> UIImage in
return #imageLiteral(resourceName: "carPlayTab")
})
return item
} else if indexPath.count == 2, indexPath.item < carplayPlaylist.stations.count {
// Stations section
let station = carplayPlaylist.stations[indexPath.item]
let item = MPContentItem(identifier: "\(station.name)")
item.title = station.name
item.subtitle = station.desc
item.isPlayable = true
item.isStreamingContent = true
if station.imageURL.contains("http") {
ImageLoader.sharedLoader.imageForUrl(urlString: station.imageURL) { image, _ in
DispatchQueue.main.async {
guard let image = image else { return }
item.artwork = MPMediaItemArtwork(boundsSize: image.size, requestHandler: { _ -> UIImage in
return image
})
}
}
} else {
if let image = UIImage(named: station.imageURL) ?? UIImage(named: "stationImage") {
item.artwork = MPMediaItemArtwork(boundsSize: image.size, requestHandler: { _ -> UIImage in
return image
})
}
}
return item
} else {
return nil
}
}
}
CARPLAY-播放列表代码:
import Foundation
class CarPlayPlaylist {
var stations = [RadioStation]()
func load(_ completion: @escaping (Error?) -> Void) {
DataManager.getStationDataWithSuccess() { (data) in
guard let data = data else {
completion(nil)
return
}
do {
let jsonDictionary = try JSONDecoder().decode([String: [RadioStation]].self, from: data)
if let stationsArray = jsonDictionary["station"] {
self.stations = stationsArray
}
} catch (let error) {
completion(error)
return
}
completion(nil)
}
}
}
CARPLAY-STATIONLIST 代码:
import UIKit
extension StationsViewController {
func selectFromCarPlay(_ station: RadioStation) {
radioPlayer.station = station
handleRemoteStationChange()
}
}
最佳答案
云图标的存在取决于 isStreamingContent
的值。
关于ios - 如何去除 CarPlay ListView 中的云图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55106889/
我正在为 CarPlay 开发导航应用程序,在 iOS 12 中,CPApplicationDelegate 有两种方法可以检测 CarPlay 是否打开: func application(_ ap
当连接到福特汽车的 carplay 时,我使用以下方法接收来自系统的通知: NotificationCenter.default.addObserver(forName: NSNotification
对于我当前的项目,我应该开发一个 IAP2 over USB 连接到由第 3 方开发的主机(MFI 认证)。 该要求继续使用术语“CarPlay 连接”来表示该功能。但由于无法深入研究 CarPlay
我在谷歌上搜索了很多,但没有得到任何提示。当设备使用电缆连接到 carplay 时,我想在我的应用程序中进行回调。 我尝试了 EAAccessory 框架 (EAAccessoryDidConnect
如何在用户在 Carplay 中滚动时延迟加载项目? 我正在使用 MPPlayableContentDataSource 中的 beginLoadingChildItems 来加载第一组项目,但是当用
根据 MPContentItem.playable 的 Apple 文档: When set to YES, the designated content item is able to be pla
我将 CarPlay 集成添加到我的音乐应用程序中。 当我在模拟器上测试我的应用程序/CarPlay 时,所有工作都很好,但在真实设备上没有任何显示。应用程序图标不显示。任何人都可以帮助我解决这个问题
只是想知道:有什么方法可以通过编程确定 iPhone 是否已连接(通过 USB 或蓝牙)到 CarPlay 系统?提前致谢。 最佳答案 CarPlay 导航应用程序可以使用 CPApplication
我是 CarPlay 的新手,我知道它类似于 UITableViewController 但略有不同,并且无法使行能够被点击以运行函数/代码。网上关于此的信息不多,没有样本。 Apple 工程师告诉我
我正在开发一款支持 CarPlay 的应用。它是一款音频应用。 我可以显示 2 个标签(收藏和推荐),但我只是不知道如何显示“正在播放”标签。我只是找不到有关此的任何信息。我是否必须手动显示它,以及如
我们有一个音频应用程序,我们想给它添加 CarPlay。该应用基本上有一个广播流列表,用户可以选择播放哪个。 如果我在连接到 CarPlay 时从手机启动应用程序,或者如果我从 CarPlay 启动它
我们正在开发一款具有语音消息功能的应用程序。现在我们正计划开始将它与 carPlay 集成。 Messaging 和 Voip 是否可以通过 CarPlay 发送/接收音频消息? 如果是,谁能推荐一些
我正在考虑开发一个支持 CarPlay 的内部 iOS 应用程序。但是问题是,当我尝试使用此链接申请 CarPlay 权利时:https://developer.apple.com/contact/c
当您锁定 iOS 设备并通过 USB 将其连接到 CarPlay 主机时,设备将保持锁定状态。然后,在音响主机的 CarPlay 屏幕上,选择应用程序。当设备启动时,didFinishLaunchin
我正在我的 CarPlay 音频应用程序中添加一个列表(表格 View )。在 AppDelegate.m 中,我有 - (BOOL)application:(UIApplication *)appl
有谁知道如何从 CarPlay 的 ListView 中删除小云图标?我附上了它的截图。这些电台只能直播,不可下载。我还将代码包含在我的 Carplay-AppDelegate、CarPlay-Pla
我正在开发 CarPlay 应用程序(有自己的 UI 显示在 carPly 中)。但是,当我在模拟器中对其进行测试时,我看到了与以下问题相同的问题: Adding a CarPlay UI 当连接 C
我正在努力让 CarPlay 支持我当前的 iPhone 音频应用程序。我已经通过Apple 批准并获得了开发权,并观看了视频“Enabling Your App for CarPlay”( http
自测试版推出以来,我一直在使用 SwiftUI,我很好奇是否有人想出了使用 SwiftUI 在 Xcode 中为 CarPlay 设计的方法?它似乎在 Apple 的设备列表中不可用,到目前为止我还没
我正在从旧 carplay 过渡到新 ios15 carplay。 我问了苹果的carplay权利,现在有了。 所以我放了一些示例代码并运行。 代码是 func templateApplication
我是一名优秀的程序员,十分优秀!