問題タブ [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.
ios - MPRemoteCommandCenter play コマンドの後に Swift AVAudioPlayer が状態を変更しないのはなぜですか?
この環境は iOS 13.6 と Swift 5 です。フォアグラウンドまたはバックグラウンドで MP3 ファイルを正常に再生する非常に単純なアプリがあります。それに、MPRemoteCommandCenter の再生および一時停止コマンド ハンドラーを追加しました。サウンド ファイルをフォアグラウンドで再生してから一時停止します。
ロック画面から再生ボタンをタップすると、コードで audioPlayer.play() が呼び出され、true が返されます。サウンドが再び再生されるのが聞こえますが、プレーヤーの currentTime は進みません。その後、ロック画面の再生ボタンと一時停止ボタンは何もしません。アプリを再びフォアグラウンドにすると、ロック画面に移動する前の場所から再生ボタンが再生されます。
ここに私のAudioPlayerクラスがあります:
ここに私の RemoteCommandHandler クラスがあります:
この比較的単純なコード (私の考えでは) が機能しない理由に困惑しているため、さらに必要な情報を喜んで提供します。
支援をお待ちしております。
objective-c - 通話中に AirPods からの再生/一時停止コマンドを処理する
同じアプリから発信されたオーディオ/ビデオ通話中にヘッドセット コマンドを処理する方法はありますか?
私は CallKit を使用して通話を行うアプリに取り組んでおり、最近、ユーザーが AirPods をダブルタップしたときに通話をミュートできるようにするタスクを取得しました (次のトラック コマンド)。現在、何らかのアクションを行うと通話が終了しますが、この動作を変更する回避策は見つかりませんでした。FaceTime とネイティブ コールでも同じことが起こっています。
これまでのところ、MPRemoteCommandCenter を使用してリモート コマンドに応答しようとしました。
コールバックが呼び出されなかったため、私のアイデアはすべて失敗しました。この時点で、これはハードウェアの制限であると考え始めています。
ios - オーディオセッションを無効にした後に他のアプリのオーディオ再生を再開する方法と、ミキシングせずにバックグラウンドでオーディオ再生を開始する方法は?
IonicとCapacitorを使用して iOS アプリを作成しています。リモート URL でアクセス可能なオーディオ ファイルを再生するパブリック メソッドを提供する Capacitor プラグイン内でAVFoundationを使用します。基本は機能し、オーディオ ファイルは正常に再生されます。ここで、割り込みとバックグラウンド オーディオを正しく処理したいと考えています。バックグラウンド オーディオとは、アプリがバックグラウンドにある間にオーディオ ファイルの再生を開始し、前にフォアグラウンドで開始されたときにバックグラウンドで再生を継続しないことを意味します。要約すると、アプリは次のように動作する必要があります。
- 別のアプリ (Spotify など) がオーディオを再生していて、私のアプリがオーディオを再生したい場合、他のアプリは中断され、私のアプリのオーディオはミキシングなしで再生を開始するはずです。
- アプリのオーディオの再生が終了すると、他のアプリのオーディオが再開するはずです。
- 私のアプリは、バックグラウンドにあるときにミキシングせずにオーディオの再生を開始できる必要があります。
- ロック画面と通知センターに再生/一時停止ボタンとオーディオ タイトルを表示したいと考えています。
バックグラウンド モードのオーディオ機能を追加しました。私はAVPlayer、AVAudioSession、MPNowPlayingInfoCenter、MPRemoteCommandCenterを使用し、特にオーディオ セッションのアクティブ化と非アクティブ化、および割り込み処理に関するベスト プラクティスに従いました。私はこの質問とこの質問に従いました。いくつかの解決策を試しましたが、上記の目標をすべて達成することはできませんでした。これまでにわかったことは次のとおりです。
- 上記の目標 1. は簡単に達成できます。ミキシングせずにオーディオ セッションをアクティブにし、オーディオの再生を開始するだけです。
- アプリのオーディオが終了したら、オーディオ セッションを無効にします。残念ながら、リモート コマンドや通知情報を使用しない場合、上記の目標 2. しか達成できません。つまり、アプリのロック画面にも通知センターにもオーディオ コントロール UI がありません。どうやら MPNowPlayingInfoCenter と MPRemoteCommandCenter の設定が割り込み動作に影響しているようです。私が見る限り、Apple のドキュメントにはこれについて何も書かれていません。
- オプション .mixWithOthers を設定すると、バックグラウンドでオーディオの再生を開始することしかできません。Apple のドキュメントにも、これについては何も書かれていません。
どんな助けでも大歓迎です。
ロニー