diff --git a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java index 520ba79571f5c45651a593f2a2c9f7d784975e64..5ed6ad500a9f19fb419dca883dbe5bd7c2e59573 100644 --- a/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java +++ b/app/src/main/java/com/huawei/cloudapp/ui/CasCloudMainActivity.java @@ -80,11 +80,15 @@ public class CasCloudMainActivity extends Activity { mEncodeType = 1; mRemoteEncodeServerIpLayout.setVisibility(View.GONE); mRemoteEncodeServerPortLayout.setVisibility(View.GONE); + mRemoteEncodeServerIp.setText(""); + mRemoteEncodeServerPort.setText(""); break; case R.id.radioButtonGpu: mEncodeType = 2; mRemoteEncodeServerIpLayout.setVisibility(View.GONE); mRemoteEncodeServerPortLayout.setVisibility(View.GONE); + mRemoteEncodeServerIp.setText(""); + mRemoteEncodeServerPort.setText(""); break; case R.id.radioButtonRemote: mRemoteEncodeServerIpLayout.setVisibility(View.VISIBLE); @@ -94,6 +98,8 @@ public class CasCloudMainActivity extends Activity { mEncodeType = 0; mRemoteEncodeServerIpLayout.setVisibility(View.GONE); mRemoteEncodeServerPortLayout.setVisibility(View.GONE); + mRemoteEncodeServerIp.setText(""); + mRemoteEncodeServerPort.setText(""); break; } } diff --git a/app/src/main/res/layout/activity_cas_cloud_main.xml b/app/src/main/res/layout/activity_cas_cloud_main.xml index b2e7e16ae28c9790812f5dfce19203ba03f1b90a..edc4fdd8eb977f5178124d52c58b9075d07a827e 100644 --- a/app/src/main/res/layout/activity_cas_cloud_main.xml +++ b/app/src/main/res/layout/activity_cas_cloud_main.xml @@ -68,7 +68,8 @@ android:layout_marginLeft="20dp" android:layout_marginTop="30dp" android:layout_marginRight="20dp" - android:orientation="vertical"> + android:orientation="vertical" + android:visibility="gone"> + android:orientation="horizontal" + android:visibility="gone"> = ele[0]) && (mFps * 1000 >= ele[1])) { param.setPreviewFpsRange(ele[0], ele[1]); + param.setPreviewFrameRate(mFps); } } diff --git a/cloudphone/src/main/java/com/huawei/cloudphone/virtualdevice/common/VirtualDeviceProtocol.java b/cloudphone/src/main/java/com/huawei/cloudphone/virtualdevice/common/VirtualDeviceProtocol.java index 9e3983ec84667e9d029245d017758110074887cb..a421a059b9f7b0bc745175517991cea82f90e300 100644 --- a/cloudphone/src/main/java/com/huawei/cloudphone/virtualdevice/common/VirtualDeviceProtocol.java +++ b/cloudphone/src/main/java/com/huawei/cloudphone/virtualdevice/common/VirtualDeviceProtocol.java @@ -92,7 +92,6 @@ public class VirtualDeviceProtocol { for (Map.Entry entry : virtualDeviceManagers.entrySet()) { entry.getValue().start(); } - mContext.unregisterReceiver(mPermissionResultReceiver); } public void stopProcess() { @@ -105,15 +104,21 @@ public class VirtualDeviceProtocol { for (Map.Entry entry : virtualDeviceManagers.entrySet()) { entry.getValue().stop(); } + mContext.unregisterReceiver(mPermissionResultReceiver); } public void sendMsg(MsgHeader header, byte[] body, int deviceType) { synchronized (mSendMsgLock) { - byte[] headerData = header.getData(); - writeN(headerData, 0, headerData.length, deviceType); + int length = header.getData().length; + if(body != null) { + length += body.length; + } + byte[] data = new byte[length]; + System.arraycopy(header.getData(), 0, data, 0, header.getData().length); if(body != null) { - writeN(body, 0, body.length, deviceType); + System.arraycopy(body, 0, data, header.getData().length, body.length); } + writeN(data, 0, length, deviceType); } } diff --git a/cloudphone/src/main/java/com/huawei/cloudphone/virtualdevice/microphone/VirtualMicrophoneManager.java b/cloudphone/src/main/java/com/huawei/cloudphone/virtualdevice/microphone/VirtualMicrophoneManager.java index b930993d7b865798dd625c65a9f0269e5150e88c..98f1fcf43a53a5dcf7cb1dc7c9f963f62d381ae4 100644 --- a/cloudphone/src/main/java/com/huawei/cloudphone/virtualdevice/microphone/VirtualMicrophoneManager.java +++ b/cloudphone/src/main/java/com/huawei/cloudphone/virtualdevice/microphone/VirtualMicrophoneManager.java @@ -84,9 +84,18 @@ public class VirtualMicrophoneManager extends VirtualDeviceManager { public void initMicrophone() { mVirtualMicrophone.setOnRecvDataListener(new MicrophoneDataListener()); - if (mVirtualMicrophone.start() != 0) { + int result = mVirtualMicrophone.start(); + if (result != 0) { Log.e(TAG, "initMicrophone: failed to start microphone"); } + byte[] rspBody = new byte[RSP_RESULT_LENGTH + RSP_AUDIO_TYPE_LENGTH]; + rspBody[0] = 0x0; + rspBody[1] = (byte) (result == 0 ? 0x0 : 0x1); + rspBody[2] = 0x00; + rspBody[3] = 0x01; + int rspMsgLen = MSG_HEADER_LEN + RSP_RESULT_LENGTH + RSP_AUDIO_TYPE_LENGTH; + MsgHeader rspHeader = new MsgHeader(OPT_MICROPHONE_START_RECORD_RSP, DEV_TYPE_MICROPHONE, DEV_MIC_ID, rspMsgLen); + mVirtualDeviceProtocol.sendMsg(rspHeader, rspBody, MICROPHONE_DATA); } private void handleStartRecordReq(byte[] msgBody) {