問題タブ [mpplayablecontentdelegate]

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 投票する
1 に答える
333 参照

ios - CarPlay - iOS 13 で [再生中] 画面を表示する

私のアプリは、電話で既に現在の「現在再生中のアプリ」であり (つまり、必要なすべての情報が に提供されてMPNowPlayingInfoCenterいます)、アーティスト名、トラック タイトル、アートワーク イメージなどとともに、ロック画面に正しく表示されます。

ドキュメントによるとMPNowPlayingInfoCenter.default().nowPlayingInfo、適切なターゲット/アクションを設定して追加するだけで、ユーザーがアイコンをタップしたときにアプリが CarPlay で呼び出されるようにするのMPRemoteCommandCenter に十分なはずです。Now Playing

iOS 14 では、この記事でCPNowPlayingTemplate見つけたいくつかの巧妙なトリックのおかげで、スタックにプッシュすることで上記を達成することができました。

ただし、iOS 13 では、すべてが恐ろしいMPPlayableContentManagerAPIに基づいており、オーディオ ベースのアプリに対してメソッドが呼び出されないCPTemplateApplicationSceneDelegateため、再生中の画面が表示されるかどうか、いつ表示されるかを検出する方法が見つかりません。

MPNowPlayingInfoCenterMPRemoteCommandCenter上記のように正しく構成されていますが、iOS 13 の CarPlay で Now Playing アイコンをタップすると、アプリが選択されません。

この APIが役立つと思ったのですが、方法がわかりませんでした (常に空の配列を返します)。

Now Playing は正しく表示されますが、すぐに再生が開始されます。これは私が望んでいるものではありません<key>UIBrowsableContentSupportsImmediatePlayback</key><true/>Info.plist

誰でも実用的なソリューションを提供できますか?