問題タブ [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 に答える
66 参照

xcode - MPRemoteCommandCenter watch および if play run コマンド

私は Apple CarPlay アプリを作成しています。私のリスト アイテムは、メディア プレーヤーが再生されているかどうかを確認する必要があります。

メディア プレーヤーが再生を開始するまで、糸車を表示する必要があるためです。

MPRemoteCommandCenter次のようなことにアクセスして実行する必要があることはわかっています。

しかし、私はすでにメディアプレーヤー (mediaplayer.swift) を持っているので、それを見ることができると思いました。

if ステートメントを実行しようとしましたが、うまくいきませんでした。

ただし、これを実行するためにメディア プレーヤーが再生されるまで待機するのではなく、チェックを行い、チェック時に再生中の場合は完了し、それ以外の場合は回転し続けます。

私はこれを行う方法があることを知っています。私の考えでは、メディア プレーヤーを監視する関数を作成する必要がありますか?

0 投票する
1 に答える
412 参照

ios - Apple のドキュメントに記載されているように、CarPlay アプリでアクティビティ インジケーターの読み込みを表示する必要があります。

Apple のドキュメントによると、アクティビティ インジケータを表示して、何かがロードされているか、画面に表示されるまでに時間がかかっていることを示す必要があります。これは合理的であり、私はそれをやりたいと思っています...
ここに画像の説明を入力

明らかな何かが欠けているように感じますが、ビューにアクセスできないため、CarPlay アプリのテンプレートにアクティビティ インジケーターを表示する方法がわかりません。利用可能なテンプレートとしかやり取りできません。

Apple のドキュメントの画像と一致させようとしている場合は、 を使用し、listTemplateそれにアクティビティ インジケーターを追加する必要があると思います。

他の誰かがこれに出くわしましたか? どんな助けでも大歓迎です!


WWDC 中の Apple エンジニアからの更新 (2021 年 7 月)

WWDC21 でこの質問をしたところ、次のような回答がありました。

を使用している場合、ユーザーがリスト項目をタップするCPListTemplateと、システムによって が呼び出されます。-[CPListItem handler]システムはハンドラーに完了ブロックを提供します。これは、アプリがユーザーの選択の処理を完了した後に必ず呼び出す必要があります。アプリが完了ブロックをすぐに呼び出さなくても問題ありません。アプリでネットワーク リクエストを実行する必要がある場合は、時間がかかります。完了ブロックがまだ呼び出されていない場合、システムは少し遅れてリスト項目にスピナーを自動的に追加します。

もう 1 つのオプションは、残りのアイテムがまだロード中または進行中であることを示す 1 つのリスト アイテムを含むリスト テンプレートを提示することです。

特にタブ バー テンプレートの場合、表示された後に表示されるタブを更新できます。たとえば、アプリの起動時にタブをすぐに表示できない場合は、1 つまたは複数のタブを動的に追加できます。

または、全画面表示の場合はCPAlertTemplate、アプリのエラーまたは読み込み状態を示すために を表示できます。