問題タブ [mpremotecommandcenter]

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

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

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

ios - 「MPRemoteCommandCenter」で「AVSpeechSynthesizer」を使用する

AVSpeechSynthesizerユーザーにテキストを読むために使用する必要があります。

ユーザーは AirPods で読み取りを制御するため、 を使用する必要がありますMPRemoteCommandCenter

AVSpeechSynthesizer.write(_:toBufferCallback:)今のところ、プレイリストの作成を使用してオーディオ ファイルを準備し、AVQueuePlayer.

できます。ただし、音声ファイルの準備には時間がかかります。AVSpeechSynthesizer.speak(_:)バックグラウンド モードで直接使用し、コマンド経由でアクティブ化することを好みMPRemoteCommandCenterます。

これは可能ですか?または、おそらく回避策はありますか?

ありがとうございました!

0 投票する
0 に答える
18 参照

ios - MPChangePlaybackPositionCommandEvent - UISlider のように .began、.moved、.ended、.cancelled を観察する方法はありますか?

MPRemoteCommandCenterロック画面に のスライダーを使用しています。.began.moved.ended、および.cancelled通常の UISlider のように観察する方法はありますか?