如何流式传输对用户隐藏的电话屏幕?

时间:2019-08-21 16:01:21

标签: android rtsp rtmp

使用该库https://github.com/pedroSG94/rtmp-rtsp-stream-client-java,我可以轻松地播放隐藏在用户面前的手机摄像头,但不能播放隐藏在用户面前的手机显示屏,因为它需要用户确认屏幕流。

这是屏幕流https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/master/app/src/main/java/com/pedro/rtpstreamer/displayexample/DisplayRtspActivity.java的核心

  

rtspDisplay.sendIntent()-使用 MediaProjectionManager.createScreenCaptureIntent()方法进行屏幕捕获   https://developer.android.com/reference/android/media/projection/MediaProjectionManager.html#createScreenCaptureIntent()

...
startActivityForResult(rtspDisplay.sendIntent(), REQUEST_CODE_STREAM);
...
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE_STREAM
        || requestCode == REQUEST_CODE_RECORD && resultCode == Activity.RESULT_OK) {
      if (rtspDisplay.prepareAudio() && rtspDisplay.prepareVideo()) {
        initNotification();
        rtspDisplay.setIntentResult(resultCode, data);
        if (requestCode == REQUEST_CODE_STREAM) {
          rtspDisplay.startStream(etUrl.getText().toString());
        } else {
          try {
            rtspDisplay.startRecord(folder.getAbsolutePath() + "/" + currentDateAndTime + ".mp4");
          } catch (IOException e) {
            rtspDisplay.stopRecord();
            bRecord.setText(R.string.start_record);
            Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
          }
        }
      } else {
        Toast.makeText(this, "Error preparing stream, This device cant do it", Toast.LENGTH_SHORT)
            .show();
      }
    } else {
      Toast.makeText(this, "No permissions available", Toast.LENGTH_SHORT).show();
    }
  }

如何使用其他任何库或Root流隐藏用户的电话屏幕? 我是android开发的新手...

欢迎任何建议!

1 个答案:

答案 0 :(得分:0)

我使用root和screenrecord系统命令解决了我的问题。...这不是实时的,但是总比没有好!