Skip to content

Commit fd8edd5

Browse files
author
Xia Ning
committed
adapt screen share resolution to different device screen ratio
1 parent 892e18a commit fd8edd5

3 files changed

Lines changed: 11 additions & 2 deletions

File tree

Android/APIExample/app/src/main/java/io/agora/api/example/examples/advanced/MultiProcess.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
import android.content.Context;
44
import android.os.Bundle;
55
import android.text.TextUtils;
6+
import android.util.DisplayMetrics;
67
import android.util.Log;
78
import android.view.LayoutInflater;
89
import android.view.SurfaceView;
910
import android.view.View;
1011
import android.view.ViewGroup;
12+
import android.view.WindowManager;
1113
import android.widget.Button;
1214
import android.widget.EditText;
1315
import android.widget.FrameLayout;
@@ -202,7 +204,7 @@ else if (v.getId() == R.id.screenShare){
202204
if (!isSharing) {
203205
mSSClient.start(getContext(), getResources().getString(R.string.agora_app_id), null,
204206
channelId, SCREEN_SHARE_UID, new VideoEncoderConfiguration(
205-
VD_640x360,
207+
getScreenDimensions(),
206208
FRAME_RATE_FPS_15,
207209
STANDARD_BITRATE,
208210
ORIENTATION_MODE_ADAPTIVE
@@ -217,6 +219,13 @@ channelId, SCREEN_SHARE_UID, new VideoEncoderConfiguration(
217219
}
218220
}
219221

222+
private VideoEncoderConfiguration.VideoDimensions getScreenDimensions(){
223+
WindowManager manager = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
224+
DisplayMetrics outMetrics = new DisplayMetrics();
225+
manager.getDefaultDisplay().getMetrics(outMetrics);
226+
return new VideoEncoderConfiguration.VideoDimensions(outMetrics.widthPixels / 2, outMetrics.heightPixels / 2);
227+
}
228+
220229
private void joinChannel(String channelId)
221230
{
222231
// Check if the context is valid

Android/APIExample/app/src/main/java/io/agora/api/example/examples/advanced/SwitchCameraScreenShare.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,6 @@ private void setVideoConfig(int sourceType, int width, int height) {
280280
VideoEncoderConfiguration.STANDARD_BITRATE, curMirrorMode
281281
));
282282

283-
// ENGINE.setParameters("{\"rtc.log_filter\": 65535}");
284283
}
285284

286285
private void addLocalPreview() {

Android/APIExample/lib-screensharing/src/main/java/io/agora/rtc/ss/impl/ScreenSharingService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ public void onFrameAvailable(ImgTexFrame frame) {
9494

9595
mSCS.getConsumer().consumeTextureFrame(frame.mTextureId, AgoraVideoFrame.FORMAT_TEXTURE_OES, frame.mFormat.mWidth,
9696
frame.mFormat.mHeight, 0, frame.pts, frame.mTexMatrix);
97+
//Log.i(LOG_TAG, String.format("On consumeTextureFrame, width: %d, height: %d", frame.mFormat.mWidth, frame.mFormat.mHeight));
9798
}
9899
});
99100

0 commit comments

Comments
 (0)