41

enterPictureInPictureMode()アクティビティを現​​在の形式からピクチャ イン ピクチャ表現に移行する必要があります。

アクティビティを破壊する以外に、アクティビティを通常の状態に戻す手段は何ですか? にはexitPictureInPictureMode()leavePictureInPictureMode()、またはjaneGetMeOffThisCrazyPictureInPictureModeThing()メソッドはなくActivity、ドキュメントには代替手段が記載されていないようです。

モバイル デバイスのピクチャー イン ピクチャー モードの Android O 向けのソリューションに興味がありますが、それが Android TV でも機能する場合は素晴らしいことです。

UPDATE 2017-04-08 : ユーザーが [X] ボタンをクリックしてピクチャ イン ピクチャ モードを終了したときに通常モードに戻りたい場合は、次のようにすることができます。

  @Override
  public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
    super.onPictureInPictureModeChanged(isInPictureInPictureMode);

    if (!isInPictureInPictureMode) {
      getApplication().startActivity(new Intent(this, getClass())
        .addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
    }
  }

キービットは、 を使用startActivity()して現在のアクティビティを再開するために呼び出すことFLAG_ACTIVITY_REORDER_TO_FRONTです。アクティビティでは、シングルトンなどのsingleTask非コンテキストでそれを呼び出す必要があります。これはまたはをトリガーするようには見えませんが、トリガーします ( に渡すものは何でも)。ActivityApplicationonStop()onStart()onNewIntent()IntentstartActivity()

4

5 に答える 5

0

公式ドキュメントによると、PIP ウィンドウには全画面表示に切り替えるメニューが表示されます。

PIP ウィンドウは 240x135 dp で、システムによって選択された、画面の 4 つの隅の 1 つの最上層に表示されます。ユーザーは、リモートのホーム ボタンを押したままにして、PIP ウィンドウを全画面表示に切り替えたり、PIP ウィンドウを閉じたりできる PIP メニューを呼び出すことができます。メイン画面で別のビデオの再生が開始されると、PIP ウィンドウは自動的に閉じます。

また、ユーザーが PIP モードを切り替えるたびに、PIP 変更イベントをオーバーライドして UI 要素を処理できます。

onPictureInPictureModeChanged へのリンク

@Override
public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
    if (isInPictureInPictureMode) {
        // Hide the controls in picture-in-picture mode.
        ...
    } else {
        // Restore the playback UI based on the playback status.
        ...
    }
}
于 2017-04-02T23:50:40.907 に答える