1

ユーザーに話しかけ、ユーザーの音声応答を聞くアプリがあります。携帯電話をカー オーディオ システムに接続してアプリを使用すると、アプリが話し終わったときに割り込み通知を受信し、アプリの続行を許可する代わりに、ミュージック アプリが音楽の再生を開始することに気付きました。

これは、電話が外部デバイスに接続されていない場合には発生せず、電話を差し込んだ瞬間には発生せず、音声が停止して電話が車内で再生されている場合にのみ発生します. いくつかのテストを行った結果beginReceivingRemoteControlEvents、アプリケーションでメソッドを呼び出すと、この動作が発生することがわかりました。アプリケーションのロード時にリモート コントロール イベントにサインアップしない場合、問題は発生しませんが、オーディオの「再生中」情報を表示したり、車のコントロールを使用して再生を制御したりできません。

デバイスのオーディオ再生の制御を失うことなく、リモート コントロール イベントをリッスンする方法を見つけた人はいますか?

4

2 に答える 2

2

これは多くの場合、iOS デバイスではなく、カー ステレオが原因です。ステレオのマニュアルを確認して、Audio Mode から iPod Mode (またはマニュアルでこれらのオプションの名前が付けられているもの) に切り替えます。基本的に、カーステレオはトラック終了通知をリッスンし、それを使用して「次のトラックを再生」通知をトリガーします。これは通常、デバイスのライブラリで最初のトラックをアルファベット順に選択する MPMusicPlayer を呼び出します。ソフトウェアに回避策があるのか​​もしれませんが、カー ステレオの設定を変更するのが最も簡単な方法であることがわかりました。

于 2014-06-22T18:15:39.977 に答える
0

以下を使用して、リモート コントロール イベントを無効にします (togglePlayPauseCommand を playCommand に置き換えるか、両方を実行する必要がある場合があります)。

    MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];

    [commandCenter.togglePlayPauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {
        NSLog(@"toggle button pressed");
        return MPRemoteCommandHandlerStatusSuccess;
    }];

または、ブロックの代わりにメソッドを使用する場合:

    [commandCenter.togglePlayPauseCommand addTarget:self action:@selector(toggleButtonAction)];

止まる:

    [commandCenter.togglePlayPauseCommand removeTarget:self];

また:

    [commandCenter.togglePlayPauseCommand removeTarget:self action:@selector(toggleButtonAction)];

これをファイルの include 領域に追加する必要があります。

@import MediaPlayer;
于 2015-09-03T10:50:32.933 に答える