单向视频Video Transmit需要在呼叫的时候就默认开启的是后摄像头,该怎么实现呢?
源码里面默认的是前摄像头,该在哪里改呢?
从切换时的状态入手开始研究源码:
<!-- Displayed above the contact name when the user requests an upgrade from a voice call to a
video call. -->
<string name="incall_video_call_upgrade_request">Switching to carrier video…</string>
被调用
private static CharSequence getLabelForVideoRequest(Context context, PrimaryCallState state) {
switch (state.sessionModificationState()) {
case SessionModificationState.WAITING_FOR_UPGRADE_TO_VIDEO_RESPONSE:
return context.getString(R.string.incall_video_call_upgrade_request);
被调用
public static Info getInfo(Context context, PrimaryCallState state, PrimaryInfo primaryInfo) {
被调用
private void updateTopRow() {
TopRow.Info info = TopRow.getInfo(context, primaryCallState, primaryInfo);
statusTextView.setVisibility(View.INVISIBLE);
statusTextView = view.findViewById(R.id.contactgrid_status_text);
通话时的顶部状态栏就是这个布局layout:
incall_contactgrid_top_row.xml
包含在这个layout里面:
video_contact_grid.xml
包含在这个layout里面:
videocall_controls.xml
包含在这个layout里面:
frag_videocall.xml
被调用:
LA.QSSI.13.0/LINUX/android/packages/apps/Dialer/java/com/android/incallui/video/impl/VideoCallFragment.java
这个是远程的视频画面:
remoteTextureView = (TextureView) view.findViewById(R.id.videocall_video_remote);
注入视频源:
videoCallScreenDelegate.getRemoteVideoSurfaceTexture().attachToTextureView(remoteTextureView);
调用自这里:
remoteVideoSurfaceTexture = VideoSurfaceBindings.createRemoteVideoSurfaceTexture(isPixel2017);
再看看那3个小点在哪里实现:
Modify Call
void onUpgradeToVideo(DialerCall call);