2

アプリでバックグラウンドで音楽を再生するようにしました。また、BeginRecomingRemoteControlEvents を呼び出して、アプリをメディア プレーヤーにすることにも成功しました。ただし、RemoteControlReceived メソッドが呼び出されることはありません。Objective C の同じロジックが正常に機能しています。サンプルやガイドラインをいただければ幸いです。

4

2 に答える 2

0

後のメカニズムを使用して、リモート コントロール イベントをリッスンすることをお勧めします。たとえば、ヘッドセットのボタンを聞きたい場合:

    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:47:19.857 に答える
0

ファースト レスポンダー ビューに配置されていることを確認する必要があります。配置されていない場合は、イベントがリモート イベントに到達するまで、レスポンダーのチェーンに沿って渡される必要があります。キーボードのキーを押すのと同じリモート コントロール イベントを想像してみてください。たとえば、アプリがボタンにフォーカスしているときにキーボードのキーを押しても、ボタンはキーの押下をリッスンしていないため、何も起こりません。同様の状況がコードで発生しています。BeginRecomingRemoteControlEvents とイベントを受信するためのメソッド オーバーライドを使用して、基本的な単一ビュー プロジェクトを作成してみてください (RemoteEventReceived() などの内容を思い出せません)。これは、リモート ボタンを押すと起動するはずです。

(申し訳ありませんが、サンプルコードを提供することはできません.Macの前ではありません)

于 2012-03-07T05:40:11.780 に答える