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

avplayer - iOS 13 以降のアプリの AVAudioPlayer AVPlayer AVQueuePlayer MPMusicPlayerController MPRemoteCommandCenter MPNowPlayingInfoCenter の違い

このトピックに関するすべてのスレッドは非常に古く (5 歳以上)、明確なモダン アプローチを形成できないように思われるため、2020 (Swift 5、Xcode 11) に向けて要約できることを願っています。

iOS 13を搭載した iPhone 用の AUDIO (音楽だけでなく) プレーヤー アプリを先進的な方法で構築する場合 (iOS 14 をサポートしないものは気にしないでください。つまり、8 未満のものはありません)、どのようなキットが必要ですか? /要件が次の場合に使用するクラス...

  • アプリは、ダウンロードした MP3 ファイルをローカルに保存して再生できます (必ずしもストリーミングまたは埋め込みとは限りません)。
  • ユーザーは、オーディオに対する基本的なプレーヤー コントロール (再生/一時停止/スクラブ/ボリューム) を持っています。
  • アプリには、アプリまたはネイティブ iOS コントロールによっていつでも調整できるオーディオ キュー (トラック再生の順序) があります。
  • ユーザーは、キューをトラバース (後方/前方シーク) できます。
  • ユーザーは、電話がペアリングされている Bluetooth オーディオ デバイスで再生することを選択できます。
  • 音声はバックグラウンドで再生できます(画面がオフの場合、または別のアプリで)。
  • アプリは追跡をトリガーし、バックグラウンドでキューを調整できます(ユーザーの操作なし)。
  • オーディオは、ネイティブ iOS コントロール (RemoteControlEvents) と統合されます。
  • このアプリは、Apple のガイドラインに従って「Now Playable App」です。

ボーナス(可能であれば):

  • アプリのオーディオは、経路案内アプリのように再生中の音楽を重ねることができます (これにより、バックグラウンド機能と「現在再生中」機能が無効になる可能性があることは認識していますが、アプリ開発者が方法を選択するためのより明確な理由付けについての議論に役立つ可能性があります)。

では、AVAudioPlayer または AVPlayer または MPMusicPlayerController を使用しますか? MPRemoteCommandCenter または MPNowPlayingInfoCenter?

おそらく、いくつかの要件は相互に排他的であるか、不可能でさえありますが、オーディオ再生を制御する方法が非常に多く、ユースケース間の明確な線引きがない理由、またはオーディオが音楽であるかスピーチであるかが重要である理由を理解できません、ダウンロードまたはストリーミング。Apple では、オーディオ、特に音声は明らかにビデオに次ぐものですが、プレイリスト、ポッドキャスト、その他の種類のオーディオ アプリケーションなど、特定の種類の基本的なアプリケーションについては、何らかの方向性が示されているはずです。

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

xcode - MacOS がバックグラウンドで MPRemoteCommandCenter コマンドに応答しない

システムで何が起こっていても、再生一時停止イベントを取得することを目的とした、独自の目的でアプリケーションを作成しています。私はこれだけ働いています

これらのメソッドのほとんどが存在するのは、nextTrackCommand または previousTrackCommand または playCommand が実装されていないと、明らかに通知を受け取ることができないためです。

とにかく、私の 1 つの問題は、オーディオを使用する別のアプリケーションを開くとすぐに、これらのイベント ハンドラーが呼び出されなくなり、これを検出して修正する方法が見つからないことです。

私は通常、これをバックグラウンドアプリケーションとして述べるために AVAudioSession を実行しようとしますが、うまくいかないようです。システムの状態に関係なく、再生一時停止イベントを取得する方法についてのアイデアはありますか?

これらのイベントを常にリッスンできるようにしたいですか、それとも他の誰かがいつオーディオを制御したかを知ることができますか? おそらく、これらの再生一時停止イベントを再サブスクライブすることもできます.

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

swift - オーディオ セッション カテゴリを変更した後、MPRemoteCommandCenter を使用できません

私のアプリには、そのサウンドを他のアプリとミックスできるようにするオプションがあります。Apple によると、MPRemoteCommandCenter は、アプリでミキシングが許可されていない場合にのみ使用できます。

アプリ内で、ユーザーがボタンをタップして mixWithOthers 設定を変更すると、それに応じてオーディオ セッションが設定されます。

ただし、ユーザーがミキシングを許可しないように切り替えても、MPRemoteCommandCenter は、アプリがキャッシュから削除 (上にスワイプ) されて再起動されるまで、ロック画面に表示されません。

アプリを再起動せずに目的の動作を実現する方法はありますか?

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

ios - MPRemoteCommandCenter ロック画面に表示されない

重複した質問かもしれませんが、私のために働く解決策はありません。私はほとんどすべてを試しました。

現在再生中の情報がロック画面で更新されません。

Swift バージョン: 5 & iOS バージョン: 13

これが私のコードです

1 つのメソッドが viewDidLoad から呼び出されています。

そしてもう1つはplaybuttonActionメソッドから呼び出されています。

私のAppdelegateはここにあります

呼び出すupdateLockScreen()前に呼び出しplayMusic()ても結果はありません。ここで何かが恋しいですか?