private void shareScreen() { mScreenSharing = true; if (mSurface == null) { return; } if (mMediaProjection == null) { startActivityForResult(mProjectionManager.createScreenCaptureIntent(), PERMISSION_CODE); return; } mVirtualDisplay = createVirtualDisplay(); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.media_projection); DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); mScreenDensity = metrics.densityDpi; mSurfaceView = (SurfaceView) findViewById(R.id.surface); mSurface = mSurfaceView.getHolder().getSurface(); mProjectionManager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE); ArrayAdapter<Resolution> arrayAdapter = new ArrayAdapter<>( this, android.R.layout.simple_list_item_1, RESOLUTIONS); Spinner s = (Spinner) findViewById(R.id.spinner); s.setAdapter(arrayAdapter); s.setOnItemSelectedListener(new ResolutionSelector()); s.setSelection(0); mToggle = (ToggleButton) findViewById(R.id.screen_sharing_toggle); }
public void onToggleScreenShare(View view) { if (((ToggleButton) view).isChecked()) { shareScreen(); } else { stopScreenSharing(); } }
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode != PERMISSION_CODE) { Log.e(TAG, "Unknown request code: " + requestCode); return; } if (resultCode != RESULT_OK) { Toast.makeText(this, "User denied screen sharing permission", Toast.LENGTH_SHORT).show(); return; } mMediaProjection = mProjectionManager.getMediaProjection(resultCode, data); mVirtualDisplay = createVirtualDisplay(); }
@Override public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) { Resolution r = (Resolution) parent.getItemAtPosition(pos); ViewGroup.LayoutParams lp = mSurfaceView.getLayoutParams(); if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { mDisplayHeight = r.y; mDisplayWidth = r.x; } else { mDisplayHeight = r.x; mDisplayWidth = r.y; } lp.height = mDisplayHeight; lp.width = mDisplayWidth; mSurfaceView.setLayoutParams(lp); }
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode != PERMISSION_CODE) { Log.e(TAG, "Unknown request code: " + requestCode); return; } if (resultCode != RESULT_OK) { Toast.makeText(this, "User denied screen sharing permission", Toast.LENGTH_SHORT).show(); return; } mMediaProjection = mProjectionManager.getMediaProjection(resultCode, data); mMediaProjection.registerCallback(new MediaProjectionCallback(), null); mVirtualDisplay = createVirtualDisplay(); }
@Override public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) { Resolution r = (Resolution) parent.getItemAtPosition(pos); ViewGroup.LayoutParams lp = mSurfaceView.getLayoutParams(); if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { mDisplayHeight = r.y; mDisplayWidth = r.x; } else { mDisplayHeight = r.x; mDisplayWidth = r.y; } lp.height = mDisplayHeight; lp.width = mDisplayWidth; mSurfaceView.setLayoutParams(lp); }
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.media_projection); DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); mScreenDensity = metrics.densityDpi; mSurfaceView = (SurfaceView) findViewById(R.id.surface); mSurface = mSurfaceView.getHolder().getSurface(); mProjectionManager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE); ArrayAdapter<Resolution> arrayAdapter = new ArrayAdapter<Resolution>( this, android.R.layout.simple_list_item_1, RESOLUTIONS); Spinner s = (Spinner) findViewById(R.id.spinner); s.setAdapter(arrayAdapter); s.setOnItemSelectedListener(new ResolutionSelector()); s.setSelection(0); }
public void onToggleScreenShare(View view) { if (((ToggleButton) view).isChecked()) { shareScreen(); } else { stopScreenSharing(); } }
private void shareScreen() { mScreenSharing = true; if (mSurface == null) { return; } if (mMediaProjection == null) { startActivityForResult(mProjectionManager.createScreenCaptureIntent(), PERMISSION_CODE); return; } mVirtualDisplay = createVirtualDisplay(); }