Привет, ребята, как реализовать видео PiP (картинка в картинке) на нажатой кнопке React Native Home? Я не могу правильно отображать видео PiP в React Native

0

Когда я нажал кнопку Android Home, воспроизвел видео в формате pip через собственные модули и передал URL-адрес видео и текущую продолжительность видео, а собственный модуль принял этот параметр и намерение использовать метод Video Activity. Внутри метода OnCreate Video Activity я пытаюсь показать видео в формате PiP. на значке в React Native, режим PiP отображается, но я не могу вернуться, чтобы реагировать на собственный вид. Когда я нажимаю кнопку Android Home, режим PiP не отображается.

PiPModule.java

public class PiPModule extends ReactContextBaseJavaModule {

public PiPModule(ReactApplicationContext reactContext){
    super(reactContext);
}

@NonNull
@Override
public String getName() {
    return "PiPModule";
}

@ReactMethod
public void showPiPVideo(String videoURL,int seekToDuration)
{
    Toast.makeText(getReactApplicationContext(),"showPiPVideo is working",Toast.LENGTH_SHORT).show();
    Intent intent = new Intent(getCurrentActivity(), PiPVideoActivity.class);
    intent.putExtra("VIDEO_URL",videoURL);
    intent.putExtra("VIDEO_CURRENT_DURATION",seekToDuration);
    getCurrentActivity().startActivity(intent);
}

}

Использование в компоненте React-Native

import {NativeModules} from 'react-native'
const pipVideo = NativeModules.PiPModule;
pipVideo.showPiPVideo(videoURL, Math.floor(currentTime) * 1000);

PiPВидео активность

public class PiPVideoActivity extends AppCompatActivity {

private String videoPath;
private int videoDuration;
VideoView myVideoView;

@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_pip_video);

    Intent i = getIntent();

    if(i != null){
        myVideoView = (VideoView) findViewById(R.id.videoView);
        videoPath = i.getStringExtra("VIDEO_URL");
        videoDuration = i.getIntExtra("VIDEO_CURRENT_DURATION",0);
        PlayVideo();
    }
    else{
        Toast.makeText(PiPVideoActivity.this, "VideoURL not found", Toast.LENGTH_SHORT).show();
    }

    PictureInPictureParams params = new PictureInPictureParams
            .Builder()
            .setAspectRatio(new Rational(1,1))
            .build();
    enterPictureInPictureMode(params);

}

private void PlayVideo() {
    try {
        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        Uri video = Uri.parse(videoPath);
        myVideoView.setVideoURI(video);
        myVideoView.requestFocus();
        myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            public void onPrepared(MediaPlayer mp) {
                //seek to receive miliseconds
                myVideoView.seekTo(videoDuration);
                myVideoView.start();
            }
        });

    } catch (Exception e) {
        System.out.println("Video Play Error :" + e.toString());
        finish();
    }

}

}