【高通平台】安卓平板,使用QQ 视频通话,视频旋转90度问题修改

 

 

修改过来的方向

Z:\smd450_8953pro\frameworks\base\core\java\android\hardware\Camera.java

//270 行
public static void getCameraInfo(int cameraId, CameraInfo cameraInfo) {
......


	//Log.e(TAG, "sssssssssss Audio sssssssssssssssss22 302,cameraInfo.orientation =" +cameraInfo.orientation );
		if(!(ActivityThread.currentOpPackageName().equalsIgnoreCase("org.codeaurora.snapcam") ) 
			  && !(ActivityThread.currentOpPackageName().equalsIgnoreCase("org.codeaurora.gallery") )){
			if(cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK  ) {
				cameraInfo.orientation =0;
			}else if(cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT){
				cameraInfo.orientation =180;
			}
	//	Log.e(TAG, "sssssssssss Audio sssssssssssssssss33 309,cameraInfo.orientation =" +cameraInfo.orientation );
			
		}

Z:\smd450_8953pro\frameworks\base\core\java\android\view\OrientationEventListener.java

修改本地的方向

 class SensorEventListenerImpl implements SensorEventListener {
        private static final int _DATA_X = 0;
        private static final int _DATA_Y = 1;
        private static final int _DATA_Z = 2;
        
        public void onSensorChanged(SensorEvent event) {
            float[] values = event.values;
            int orientation = ORIENTATION_UNKNOWN;
            float X = -values[_DATA_X];
            float Y = -values[_DATA_Y];
            float Z = -values[_DATA_Z];        
            float magnitude = X*X + Y*Y;
            // Don't trust the angle if the magnitude is small compared to the y value
            if (magnitude * 4 >= Z*Z) {
                float OneEightyOverPi = 57.29577957855f;
                float angle = (float)Math.atan2(-Y, X) * OneEightyOverPi;
                orientation = 90 - (int)Math.round(angle);
                // normalize to 0 - 359 range
                while (orientation >= 360) {
                    orientation -= 360;
                } 
                while (orientation < 0) {
                    orientation += 360;
                }
            }
            if (mOldListener != null) {
                mOldListener.onSensorChanged(Sensor.TYPE_ACCELEROMETER, event.values);
            }
            if (orientation != mOrientation) {
                mOrientation = orientation;
				// oudelin add	
				if(ActivityThread.currentOpPackageName().equalsIgnoreCase("com.tencent.mobileqq")) {
					orientation=orientation+90;
			//		Log.w(TAG, "ssssss22  1256 orientation ="+orientation);
				}

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高通的DRM图形显示框架是基于Android的DRM架构,提供了一种安全的方式来显示受保护的内容。以下是一些使用高通8155单安卓平台的DRM图形显示框架的步骤: 1. 在Android系统中启用DRM支持,例如在设备树中定义CONFIG_DRM=y。 2. 在设备树(dts文件)中配置DRM驱动程序,例如: ``` { drm { compatible = "qcom,mdss_dsi"; reg = <0x0 0x14c0000 0x0 0x4000>; interrupts = <0 121 0>; clocks = <&mmcc CAMSS_LPASS_MCLK>; clock-names = "mdp_clk"; mdp { compatible = "qcom,mdss-mdp5"; reg = <0x0 0x1340000 0x0 0x10000>; qcom,mdp-secure-mode = <1>; interrupts = <0 123 0>; clocks = <&mmcc CAMSS_LPASS_MCLK>, <&mmcc CAMSS_LPASS_AHB_CLK>, <&gcc GCC_MMSS_MDP_AHB_CLK>, <&gcc GCC_MMSS_MDP_AXI_CLK>, <&gcc GCC_MMSS_MDP_PIXEL_CLK>; clock-names = "mdp_clk", "mdp_ahb_clk", "mdp_axi_clk", "mdp_ahb_clk", "mdp_pixel_clk"; phys = <&mdp_phy0>; phy-names = "mdp_phy"; status = "okay"; }; }; }; ``` 3. 在应用程序中使用DRM API,例如: ``` mediaDrm = new MediaDrm(UUID.fromString("00000000-0000-0000-0000-000000000000")); MediaDrm.KeyRequest keyRequest = mediaDrm.getKeyRequest(sessionId, initData, mimeType, MediaDrm.KEY_TYPE_STREAMING, optionalParameters); ``` 4. 配置DRM插件,例如Widevine插件,以支持受保护的内容。在设备树(dts文件)中添加以下内容: ``` drm_widevine { compatible = "widevine,wvdrm"; reg = <0>; }; ``` 5. 在应用程序中使用DRM插件API,例如: ``` MediaDrm drm = new MediaDrm(UUID.fromString("edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"), new WidevinePlugin()); ``` 以上是使用高通8155单安卓平台的DRM图形显示框架的基本步骤,具体使用方法可以参考高通提供的相关文档和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值