CN116033158B - 投屏方法和电子设备 - Google Patents
投屏方法和电子设备 Download PDFInfo
- Publication number
- CN116033158B CN116033158B CN202210901655.0A CN202210901655A CN116033158B CN 116033158 B CN116033158 B CN 116033158B CN 202210901655 A CN202210901655 A CN 202210901655A CN 116033158 B CN116033158 B CN 116033158B
- Authority
- CN
- China
- Prior art keywords
- electronic device
- screen
- mobile phone
- frame rate
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000015654 memory Effects 0.000 claims description 31
- 238000004891 communication Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 38
- 230000006870 function Effects 0.000 description 31
- 239000010410 layer Substances 0.000 description 30
- 238000010586 diagram Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 14
- 238000005266 casting Methods 0.000 description 13
- 230000003993 interaction Effects 0.000 description 7
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Telephone Function (AREA)
Abstract
本申请实施例提供了一种投屏方法和电子设备,该方法由第一电子设备执行,包括:获取目标编码帧率,该目标编码帧率为根据第一电子设备中编码器在预设时长内可编码的像素的数量与第一电子设备对待投屏的图像数据进行编码时所采用的分辨率所确定的;采用目标编码帧率和分辨率对待投屏的图像数据进行编码,得到编码数据,并向第二电子设备发送编码数据。该方法可以使编码器在该最优编码帧率下进行编码,合理利用编码器性能,提高编码过程的成功率,从而提高投屏成功率。
Description
本申请要求于2022年05月30日提交国家知识产权局、申请号为202210600336.6、申请名称为“投屏方法和电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及投屏技术领域,具体涉及一种投屏方法和电子设备。
背景技术
当前,较多的电子设备支持无线投屏技术,即将电子设备A的显示界面投屏显示到另一个电子设备B的屏幕上,用户可通过电子设备B观看显示内容。例如,手机可以将显示界面投屏至平板电脑上进行显示。
在手机向平板电脑投屏的过程中,通常需要手机先对待投屏数据进行编码,再将编码数据发送至平板电脑,以供平板电脑对编码数据进行解码,继而显示投屏界面。
然而,因当前手机的种类越来越多,不同手机的编码性能也不同,因此,在对待投屏数据编码之前,需要确定当前手机适用的编码参数,以提高投屏成功率。
发明内容
本申请提供了一种投屏方法和电子设备,能够提高投屏成功率。
第一方面,本申请提供一种投屏方法,该方法由第一电子设备执行,包括:获取目标编码帧率,该目标编码帧率为根据第一电子设备中编码器在预设时长内可编码的像素的数量与第一电子设备对待投屏的图像数据进行编码时所采用的分辨率所确定的;采用目标编码帧率和分辨率对待投屏的图像数据进行编码,得到编码数据,并向第二电子设备发送编码数据。
其中,第一电子设备可以为手机,第二电子设备可以为平板电脑,手机向平板电脑投屏的过程中,需要采用投屏分辨率(可简称为分辨率)和编码帧率对待投屏数据进行编码。为提高手机的编码成功率,本申请根据手机编码器在预设时长内(例如1秒内)可编码的像素的数量与投屏分辨率来确定目标编码帧率,可在编码器的编码能力范围内进行编码。在一些实现方式中,该目标编码帧率也可称为最优编码帧率。
可以理解,在一种实现方式中,上述目标编码帧率可以为第一电子设备根据第一电子设备的编码器在预设时长内可编码的像素的数量与投屏分辨率来确定的,此时第一电子设备在确定了目标编码帧率后即可直接采用该目标编码帧率进行编码。在另一种实现方式中,上述目标编码帧率还可以为第二电子设备根据第一电子设备的编码器在预设时长内可编码的像素的数量与投屏分辨率来确定的,此时第二电子设备需要从第一电子设备中获取第一电子设备的编码器可编码的像素的数量(投屏分辨率可以为第一电子设备与第二电子设备协商所得到的),在确定了目标编码帧率后需要将目标编码帧率返回至第一电子设备,以供第一电子设备采用该目标编码帧率进行编码。
在一个实现方式中,上述编码器在预设时长内可编码的像素的数量可以通过预设的接口来获得。
上述实现方式中,第一电子设备在将显示界面投屏至第二电子设备设备时,可根据当前编码器中可编码的像素的数量以及投屏分辨率,确定一个最优编码帧率,使编码器在该最优编码帧率下进行编码,合理利用编码器性能,提高编码过程的成功率,从而提高投屏成功率。
结合第一方面,在第一方面的有些实现方式中,在目标编码帧率为第一电子设备根据第一电子设备的编码器在预设时长内可编码的像素的数量与投屏分辨率来确定的情况下,上述方法还包括:确定编码器在预设时长内可编码的像素的数量。
在一个实现方式中,编码器内包括具有编码能力的宏块(也可称为编码块),每个宏块可编码一定数量的像素。那么,确定编码器在预设时长内可编码的像素的数量,包括:根据编码器中可用宏块的数量、以及每个可用宏块在预设时长内可编码的像素的数量,确定编码器在预设时长内可编码的像素的数量。
其中,在每个可用宏块可编码的像素的数量都相同的情况下,第一电子设备可以将可用宏块的数量和每个可用宏块可编码的像素的数量的乘积作为编码器可编码的像素的数量。在各可用宏块可编码的像素的数量不相同的情况下,第一电子设备可以将每个可用宏块可编码的像素的数量相加得到编码器可编码的像素的数量。
在确定了编码器在预设时长内可编码的像素的数量之后,第一电子设备可以根据关系式:H×L×M≤N×n×n,确定目标编码帧率,其中,N×n×n为编码器在预设时长内可编码的像素的数量,N为编码器中可用宏块的数量,n×n为每个可用宏块在预设时长内可编码的像素的数量,H×L为分辨率,M为目标编码帧率。
在一个实现方式中,在满足上述关系式的情况下,M可能不是整数,那么此时目标编码帧率可以为满足该关系式的最大整数,通过采用最大的编码帧率可提高后续的编码效率。
结合第一方面,在第一方面的有些实现方式中,上述方法还包括:获取编码器中可用宏块的数量。
在一个实现方式中,CPU可以提供用于获取编码器中可用宏块的数量的接口,该接口可以为:hnMediaCodec.getMediaMacroBlockInfo().getAvailableNum(),其中,HnMediaCodecManager hnMediaCodec=HnMediaCodecManager.getInstance()。
在一个实现方式中,在目标编码帧率为第二电子设备根据第一电子设备的编码器在预设时长内可编码的像素的数量与投屏分辨率来确定的情况下,第二电子设备可以执行如下第二方面的技术方案。
第二方面,本申请提供一种投屏方法,该方法由第二电子设备执行,包括:向第一电子设备发送目标编码帧率,该目标编码帧率为第二电子设备根据第一电子设备中编码器在预设时长内可编码的像素的数量与第一电子设备对待投屏的图像数据进行编码时所采用的分辨率所确定的;接收来自第一电子设备的编码数据,并显示编码数据对应的图像,编码数据为第一电子设备采用目标编码帧率和分辨率对待投屏的图像数据进行编码所得到的数据。
结合第二方面,在第二方面的有些实现方式中,上述方法还包括:根据编码器中可用宏块的数量、以及每个可用宏块在预设时长内可编码的像素的数量,确定编码器在预设时长内可编码的像素的数量。
结合第二方面,在第二方面的有些实现方式中,上述方法还包括:根据关系式:H×L×M≤N×n×n,确定目标编码帧率,其中,N×n×n为编码器在预设时长内可编码的像素的数量,N为编码器中可用宏块的数量,n×n为每个可用宏块在预设时长内可编码的像素的数量,H×L为分辨率,M为目标编码帧率。
结合第二方面,在第二方面的有些实现方式中,上述目标编码帧率为满足关系式的最大整数。
结合第二方面,在第二方面的有些实现方式中,在确定编码器在预设时长内可编码的像素的数量之前,上述方法还包括:获取编码器中可用宏块的数量。
结合第二方面,在第二方面的有些实现方式中,获取编码器中可用宏块的数量,包括:根据接口:hnMediaCodec.getMediaMacroBlockInfo().getAvailableNum()获取编码器中可用宏块的数量;
其中,HnMediaCodecManager hnMediaCodec=HnMediaCodecManager.getInstance()。
关于第二方面及第二方面的各实现方式的实现原理和技术效果,参见上述第一方面的描述,在此不再赘述。
第三方面,本申请提供一种投屏系统,包括第一电子设备和第二电子设备,第一电子设备执行第一方面的技术方案中任意一种方法,第二电子设备第二方面的技术方案中任意一种方法。
第四方面,本申请提供一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能,或者实现上述第二方面及上述第二方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。
第五方面,本申请提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第一方面的技术方案中任意一种方法,或者,执行第二方面的技术方案中任意一种方法。
第六方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法,或者,执行第二方面及其任意可能的实现方式中的方法。
可选地,芯片还包括存储器,存储器与处理器通过电路或电线连接。
进一步可选地,芯片还包括通信接口。
第七方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面的技术方案中任意一种方法,或者执行第二方面的技术方案中任意一种方法。
第八方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面的技术方案中任意一种方法,或者执行第二方面的技术方案中任意一种方法。
附图说明
图1是本申请实施例提供的一例电子设备的结构示意图;
图2是本申请实施例提供的一例电子设备的软件结构框图;
图3是本申请实施例提供的一例手机的桌面界面示意图;
图4是本申请实施例提供的一例手机助手APP的打开界面示意图;
图5中的(a)图是本申请实施例提供的一例手机助手APP的连接界面示意图;
图5中的(b)图是本申请实施例提供的一例平板电脑的连接界面示意图;
图6是本申请实施例提供的一例手机无线投屏界面的示意图;
图7是本申请实施例提供的一例手机投屏至平板电脑的对比显示示意图;
图8是本申请实施例提供的一例手机和平板电脑的系统架构示意图;
图9是本申请实施例提供的一例手机与平板电脑传输数据过程中,手机中各模块与平板电脑中各模块之间进行数据交互的过程示意图;
图10是本申请实施例提供的一例手机与平板电脑建立连接过程中,手机中各模块与平板电脑中各模块之间进行数据交互的过程示意图;
图11是本申请实施例提供的一例投屏方法的流程示意图;
图12是本申请实施例提供的一例手机助手APP的断开连接界面示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个该特征。
本申请实施例中的“投屏”是指,将一个电子设备上显示界面的数据传输至另一电子设备上,以使另一个电子设备显示相同的显示界面。为了便于理解,将上述的“另一电子设备”称为投屏设备。本申请实施例可以实现手机投屏至平板电脑、平板电脑投屏至个人计算机(personal computer,PC)、手机投屏至PC等过程,下面以电子设备为手机、投屏设备为平板电脑为例进行说明。
当前,在手机向平板电脑投屏的过程中,通常需要手机先对待投屏数据进行编码,再将编码数据发送至平板电脑。在一些视频投屏的场景中,例如手机正在播放视频,要将该视频投屏至平板电脑,如果该视频属于高清高帧率视频,即其分辨率和编码帧率都比较高,那么在手机对视频数据编码的过程中,若手机的编码性能比较低(即编码器的性能较差),可能会出现手机无法编码成功的结果,导致投屏失败。
示例性地,手机对视频数据编码时,通常是采用手机中的编码器对其进行编码,编码器中存在编码块(宏块)。假设当前编码器中可用的编码块为a块,而编码视频数据时对应的分辨率和编码帧率(编码帧率通常是预设置的)比较高,假如计算得到需要b块编码块才能编码成功,那么在b大于a的情况下,则可用的编码块无法完成对视频数据的编码过程,即编码失败,无法得到编码数据。在这种情况下,平板电脑也接收不到编码数据,从而无法显示投屏界面,即投屏失败。
有鉴于此,本申请实施例提供一种投屏方法,电子设备可以根据当前编码器中可用的编码块以及投屏数据的分辨率,确定一个最优编码帧率,使编码器在该最优编码帧率下进行编码,合理利用可用的编码块,提高编码过程的成功率,从而提高投屏成功率。需要说明的是,本申请实施例提供的投屏方法可以应用于平板电脑、PC、超级移动个人计算机(ultra-mobile personal computer,UMPC)、车载设备、上网本、个人数字助理(personaldigital assistant,PDA)等具有投屏功能电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图1是本申请实施例提供的一例电子设备100的结构示意图。以电子设备100是手机为例,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
应理解,除了图1中列举的各种部件或者模块之外,本申请实施例对电子设备100的结构不做具体限定。在本申请另一些实施例中,电子设备100还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图2是本申请实施例的电子设备100的软件结构框图。以电子设备100是手机为例,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息、手机助手等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等。
应理解,除了图2中列举的各个层以及各层包括的模块之外,本申请实施例对电子设备100的软件架构不做具体限定。在本申请另一些实施例中,电子设备100还可以包括比图示更多或更少的层,或者组合某些层,或者拆分某些层,或者不同的模块布置。
首先介绍一下手机向平板电脑投屏的过程,在一种可实现的方式中,手机上可以安装一个供用户执行投屏操作的应用程序(application,APP),例如可以为手机助手APP,如图3所示,该手机助手APP可以以一个桌面图标形式展现在手机的桌面上。用户通过点击该桌面图标,可将手机助手APP启动,该手机助手APP的启动界面可以参见图3。在图3所示的界面中,手机助手APP的启动界面上包括“立即连接”控件、以及手机支持的投屏模式介绍,例如手机当前支持的是镜像模式。在该界面上,用户点击“立即连接”控件后,跳转至如图4所示的显示界面,手机开始搜索附近可用的投屏设备,这些可用的投屏设备可与手机进行短距通信,比如蓝牙通信(需要说明的是,此时手机和搜索到的可用的投屏设备都已开启蓝牙开关)。假设当前可用的投屏设备有设备1和设备2,则手机可将设备1和设备2的基本信息(如设备名称)显示在图4所示的可用设备列表中。然后,用户可点击选中可用设备列表中的一个设备(假设选择的是设备2,即平板电脑),手机上显示如图5中的(a)图所示的连接界面;同时,手机向设备2发送连接请求,设备2上显示如图5中的(b)图所示的确认界面。用户在图5中的(b)图所示的界面上点击了“同意”控件后,即可完成手机与平板电脑的投屏连接过程,进而手机可将当前的显示界面的数据发送至平板电脑,平板电脑上便显示出手机当前的显示界面。其中,在手机与平板电脑建立投屏连接时,手机当前显示的界面仍是手机助手APP的界面,那么平板电脑上也显示出该界面;当手机上打开了视频播放界面后,平板电脑上同时也显示出该视频播放界面。示例性地,手机投屏至平板电脑的效果示意图可以参见图6所示。
可以理解,平板电脑中也可以安装一个供用户执行投屏操作的APP,例如平板电脑APP,用户可以通过该APP将平板电脑投屏至PC等电子设备,具体的操作步骤与手机投屏的步骤类似,在此不再赘述。
在另一种可实现的方式中,手机自身可以具有无线投屏功能,示例性地,如图7所示,用户可通过手机的下拉系统菜单点击“无线投屏”控件,手机响应于用户的点击操作,开始搜索附近可用的投屏设备,并在手机投屏界面的空白区域显示可用设备列表。当搜索到可用的投屏设备后,手机可将设备1和设备2的基本信息(如设备名称)显示在可用设备列表中。然后,用户点击选中可用设备列表中的一个设备(假设选择的是设备2,平板电脑),手机向设备2发送连接请求,待用户在平板电脑上确认连接后,即可完成手机与平板电脑的投屏连接过程。
基于上述用户执行投屏操作的过程,下面结合手机和平板电脑的系统架构以及系统架构中各模块之间的数据交互过程对本申请实施例提供的投屏方法进行描述。图8为手机和平板电脑的系统架构示意图,图9为本申请实施例提供的投屏方法中,手机中各模块与平板电脑中各模块之间进行数据交互的过程示意图。
如图8所示,手机至少包括:应用程序层的手机助手APP,能力层的第一投屏模块、第一传输模块和第一基础能力模块,框架层的多媒体框架,内核层的第一蓝牙驱动、第一Wi-Fi驱动和第一USB驱动,硬件层的CPU、显卡(GPU)、编码器、第一蓝牙芯片和第一Wi-Fi芯片。平板电脑至少包括:应用程序层的平板助手APP,能力层的第二传输模块、第二投屏模块和第二基础能力模块,内核层的第二蓝牙驱动、第二Wi-Fi驱动、第二USB驱动和显示驱动,硬件层的显卡(GPU)、解码器、第二蓝牙芯片、第二Wi-Fi芯片和显示屏。
其中,手机助手APP和平板助手APP可以用于与用户交互,用户可以在该APP上执行各种操作。可选地,手机助手APP和平板电脑APP还可以包括业务管理模块和业务设置模块,用于对APP进行管理和设置。手机的手机助手APP和平板电脑的平板助手APP可以协商投屏分辨率。手机的第一投屏模块可以包括抓屏模块、编码逻辑模块和虚拟化服务模块;抓屏模块可以用于抓取手机上显示界面的图像数据,编码逻辑模块可以调用编码器对该图像数据进行编码,第一传输模块可以用于将编码数据发送至平板电脑的第二传输模块;虚拟化服务模块可以提供服务指令,例如指示手机助手APP计算最优编码帧率。第一基础能力模块可以为第一投屏模块在实现各种功能时提供对应的能力。第一蓝牙驱动可以调用第一蓝牙芯片的能力、第一Wi-Fi驱动可以调用第一Wi-Fi芯片的能力,使手机与平板电脑建立蓝牙连接或Wi-Fi连接。平板电脑的第二投屏模块可以包括解码逻辑模块、显示模块和虚拟化服务模块;解码逻辑模块可以调用解码器对接收到的编码数据进行解码,显示模块可以调用显示驱动,将解码后的图像数据显示在显示屏上。需要说明的是,平板电脑上其他模块的功能与手机中对应模块的功能类似,在此不再赘述。
在上述图8所示的系统架构的基础上,如图9所示,本申请实施例提供的投屏方法的过程可以包括:
S1,手机的手机助手APP与平板电脑的平板助手APP协商投屏分辨率。
其中,手机与平板电脑可以在建立连接之后协商投屏分辨率,该过程可参见下述图10所示实施例的描述。可以理解,该投屏分辨率可以为一帧图像的分辨率,也即一帧图像的像素点数量。
S2,手机助手APP存储协商好的投屏分辨率。
可选地,手机助手APP可以将协商好的投屏分辨率存储至一个数据文件中,以供后续计算需要时进行读取。
S3,手机助手APP向第一投屏模块发送建立连接成功的消息。
S4,第一投屏模块向手机助手APP发送第一消息。
其中,S3中手机助手APP向第一投屏模块发送建立连接成功的消息,即向第一投屏模块反馈自身已做好数据准备,可执行下一步操作。那么,第一投屏模块便可以向手机助手APP发送第一消息,以指示手机助手APP执行下一步操作。可选地,手机助手APP可以向第一投屏模块中的虚拟化服务模块发送建立连接成功的消息,相应的,虚拟化服务模块向手机助手APP发送第一消息。
S5,手机助手APP向多媒体框架发送第二消息,第二消息用于获取可用编码块的数量。
S6,多媒体框架向CPU发送第二消息。
可选地,上述手机中各模块之间所发送的消息可以为进程间通信(inter-processcommunication,IPC)消息。
S7,CPU获取可用编码块的数量。
其中,CPU可以提供用于获取编码器中可用编码块的数量的接口。可选地,该接口可以为如下所示:
HnMediaCodecManager hnMediaCodec=HnMediaCodecManager.getInstance();
N=hnMediaCodec.getMediaMacroBlockInfo().getAvailableNum(),N即为所获取的可用编码块的数量。
S8,CPU向多媒体框架发送可用编码块的数量。
S9,多媒体框架向手机助手APP发送可用编码块的数量。
S10,手机助手APP根据可用编码块的数量和投屏分辨率,计算最优编码帧率。
本步骤中,手机助手APP可以先从上述数据文件中读取协商好的投屏分辨率,再根据所获取的可用编码块的数量与该投屏分辨率计算最优编码帧率,其中,编码帧率可以为预设时间内(例如1秒内)所编码的帧数。
在一种可实现的方式中,手机助手APP计算最优编码帧率的过程可以为:假设可用编码块的数量为N,一个编码块在预设时间内(例如1秒内)最多可编码的像素点数量为n×n,投屏分辨率为H×L,最优编码帧率为M,则需满足以下关系式:
H×L×M≤N×n×n,即编码器在编码时1秒内实际编码的像素点数量需小于或者等于可用的编码块最多可编码的像素点数量,这样才能保证编码器能够成功编码。
示例性地,假设H×L=1920×1080,N=1000,n×n=16×16,则1920×1080×M≤1000×16×16,M取最大整数,即M等于1,则所计算得到的编码器的最优编码帧率为1帧/秒。
S11,手机助手APP向第一投屏模块发送最优编码帧率。
S12,第一投屏模块存储最优编码帧率。
可选地,手机助手APP可以向第一投屏模块中的虚拟化服务模块发送最优编码帧率,然后虚拟化服务模块存储该最优编码帧率。
S13,第一投屏模块根据最优编码帧率设置编码器参数。
可选地,在上述虚拟化服务模块存储最优编码帧率的情况下,可由第一投屏模块中的编码逻辑模块来设置编码器参数,该过程可以为:虚拟化服务模块初始化编码逻辑模块,并向编码逻辑模块发送最优编码帧率,编码逻辑模块根据该最优编码帧率设置编码器参数。也即是说,通过设置编码器参数,可以使编码器在编码时按照该最优编码帧率进行编码。
在手机对编码器参数进行设置的同时,平板电脑也需要对解码器进行设置,具体为:
S14,平板助手APP向第二投屏模块发送建立连接成功的消息。
S15,第二投屏模块初始化解码器。
可选地,平板助手APP可以向第二投屏模块中的解码逻辑模块发送建立连接成功的消息,由解码逻辑模块初始化解码器。
接下来,手机便可以获取当前显示界面的图像数据以进行投屏,该过程可以包括:
S16,第一投屏模块获取图像数据。
可选地,可由第一投屏模块中的抓屏模块来获取图像数据,例如抓屏模块通过API接口从显卡(GPU)中获取图像数据。
其中,显卡(GPU)中可以存储有一个图像队列,该图像队列包括需要显示在手机显示屏上的图像数据,这些图像数据可以是由GPU对需要显示在手机显示屏上的数据进行绘制渲染后送显的图像数据。
S17,第一投屏模块调用编码器,对获取到的图像数据进行编码。
其中,第一投屏模块可以通过第一基础能力模块中的视频编码能力来调用编码器,以对图像数据进行编码。可选地,可由上述抓屏模块将图像数据发送至第一投屏模块中的编码逻辑模块,再由编码逻辑模块调用编码器,对获取到的图像数据进行编码。可以理解,此步骤中对图像数据编码时采用的是编码参数为上述协商好的投屏分辨率以及计算得到的最优编码帧率。
S18,第一投屏模块通过第一传输模块将编码后的图像数据发送至平板电脑的第二传输模块。
其中,因S1中手机与平板电脑已建立了连接,则第一传输模块可以将图像数据沿该连接对应的数据通道(例如socket通道)发送至平板电脑的第二传输模块。
S19,平板电脑的第二传输模块将编码后的图像数据后发送至第二投屏模块。
S20,第二投屏模块调用解码器,对该图像数据进行解码。
其中,第二投屏模块可以通过第二基础能力模块中的视频解码能力来调用解码器,以对图像数据进行解码。可选地,第二传输模块可将编码后的图像数据发送至第二投屏模块中的解码逻辑模块,由解码逻辑模块调用解码器,对图像数据进行解码。
S21,第二投屏模块将解码后的图像数据发送至显示驱动,进而交由显示屏进行显示图像。
可选地,可由上述解码逻辑模块将解码后的图像数据发送至显示模块,再由显示模块将解码后的图像数据发送至显示驱动。
在投屏成功之后,第二投屏模块还可将投屏成功的消息发送至第二传输模块,继而由第二传输模块将该消息发送至手机的第一投屏模块,再由第一投屏模块将该消息发送至手机助手APP。可选地,手机助手APP还可以将投屏成功的消息进行显示,以提示用户当前投屏成功。
需要说明的是,本申请实施例对编码器进行编码的格式、以及解码器进行解码的格式不做限制,只要能实现编码解码并显示的过程即可。例如可以是将NV12格式的图像数据编码为H264格式的图像数据。
还需要说明的是,因手机是根据可用编码块的数量确定最优编码帧率的,而可用编码块的数量可能会发生变化,例如手机在投屏过程中执行了其他操作占用了编码块,那么手机可以在固定的时间间隔后再次获取最新的可用编码块的数量,并根据最新的可用编码块的数量计算新的最优编码帧率。或者,手机可以监听可用编码块的数量的变化事件,当可用编码块的数量发生变化时,便获取最新的可用编码块的数量,并根据最新的可用编码块的数量计算新的最优编码帧率。
上述实施例中,手机在将显示界面投屏至平板电脑时,可根据当前编码器中可用编码块的数量以及投屏数据的分辨率,确定一个最优编码帧率,使编码器在该最优编码帧率下进行编码,合理利用可用编码块,提高编码过程的成功率,从而提高投屏成功率。
对于上述S1中手机的手机助手APP与平板电脑的平板助手APP协商投屏分辨率的过程,如图10所示,手机中各模块与平板电脑中各模块之间进行数据交互的过程可以包括:
S30,用户点击手机助手APP中的“立即连接”控件。
S31,手机助手APP向第一投屏模块发送指示搜索投屏设备的消息。
其中,手机助手APP接收到用户输入的“立即连接”操作后,可以向第一投屏模块发送一个IPC消息,可选地,该IPC消息可以携带搜索指示指令,用于指示第一投屏模块调用第一蓝牙芯片的能力搜索发现附近可用的投屏设备。
S32,第一投屏模块调用第一蓝牙芯片的能力搜索发现附近可用的投屏设备。
此步骤中,第一投屏模块调用第一蓝牙芯片的能力,也即是利用第一蓝牙芯片搜索可用的投屏设备的蓝牙信号。
S33,可用的投屏设备的蓝牙芯片接收到手机的搜索信号,并将搜索信号发送至第二投屏模块。
其中,图10中仅示出平板电脑这一个可用的投屏设备,对应的蓝牙芯片即第二蓝牙芯片,其余可用的投屏设备的原理类似,图10中未示出。
S34,平板电脑的第二投屏模块向手机的第一投屏模块反馈自身的基本信息。
其中,设备的基本信息包括设备标识,比如设备名称、媒体存取控制地址(mediaaccess control address,MAC地址)等,第二投屏模块可以存储有设备的基本信息。
S35,手机的第一投屏模块将接收到的投屏设备的基本信息(如设备名称、MAC地址)发送至手机助手APP。
S36,手机助手APP将这些可用的投屏设备的基本信息展示在可用设备列表中。
S37,用户选中可用设备列表中的设备2(即平板电脑)。
S38,手机助手APP接收到用户的选中操作,向第一投屏模块发送指示建立连接的消息。
其中,该消息也可以为IPC消息,用于指示第一投屏模块调用第一蓝牙芯片与平板电脑建立蓝牙连接(BLE连接);可选地,该IPC消息可以携带平板电脑的标识。
S39,第一投屏模块调用第一蓝牙芯片的能力与平板电脑的第二蓝牙芯片进行蓝牙连接。
S40,第一蓝牙芯片与第二蓝牙芯片建立蓝牙连接。
S41,在手机与平板电脑(即设备2)建立了蓝牙连接后,第一蓝牙芯片向第一投屏模块发送建立蓝牙连接成功的消息。
S42,第一投屏模块生成SSID和密码。
S43,第一投屏模块调用第一Wi-Fi芯片建立一个SoftAP。
S44,第一Wi-Fi芯片创建SoftAP。
其中,该SoftAP对应有上述创建的SSID和密码。
S45,第一投屏模块通过建立的蓝牙连接的通道将SSID和密码发送至平板电脑的第二投屏模块。
S46,第二投屏模块调用第二Wi-Fi芯片根据接收到的SSID和密码与手机建立Wi-Fi P2P连接。同时,手机和平板电脑之间还建立起一个socket数据通道,以供后续手机和平板电脑相互传输数据。需要说明的是,上述手机和平板电脑之间所建立连接的类型不限于蓝牙连接和Wi-Fi P2P连接,也可以是其他类型的连接方式,只要能实现两者之间传输数据即可。
S47,第一Wi-Fi芯片向第一投屏模块发送建立连接成功的消息,第二Wi-Fi芯片向第二投屏模块发送建立连接成功的消息。
可选地,上述S30至S47中手机与平板电脑建立连接的过程,可以是由第一投屏模块中的第一连接发现模块与第二投屏模块中的第二连接发现模块进行交互所完成的,第一连接发现模块和第二连接发现模块在上述图8中未示出。
S48,第一投屏模块从显卡中获取手机所支持显示图像的分辨率。
S49,第一投屏模块将手机所支持显示图像的分辨率发送至平板电脑的第二投屏模块。
S50,第二投屏模块从接收到的分辨率中选择其中一个分辨率,作为投屏分辨率。
S51,第二投屏模块将投屏分辨率发送至手机的第一投屏模块。
其中,对于S48-S51步骤,作为一种可实现的方式,手机的第一投屏模块可以向平板电脑的第二投屏模块发送手机所支持显示图像的分辨率,例如发送宽高为1920×1080和2520×1680两个分辨率。平板电脑接收到这两个分辨率后,可以根据自身的分辨率选择其中的一个分辨率,并通过第二投屏模块返回给手机的第一投屏模块。例如,平板电脑支持2520×1680分辨率,则将该分辨率返回给手机;对于手机发送至平板电脑的分辨率中没有平板电脑所支持的分辨率的情况,则平板电脑可以选择一个与其分辨率较接近的分辨率。对于此步骤,作为另一种可实现的方式,平板电脑可以主动通过第二投屏模块将自身的分辨率发送至手机的第一投屏模块,例如第二投屏模块直接将2520×1680分辨率发送至第一投屏模块,减少了S48-S51的选择过程。
S52,手机的第一投屏模块向手机助手APP发送投屏分辨率(如2520×1680),平板电脑的第二投屏模块向平板助手APP发送投屏分辨率。
由此,手机和平板电脑即完成了投屏分辨率的协商过程。
下面再通过一个实施例对本申请涉及的投屏方法进行说明。下面的实施例可以和上述实施例相互结合,对于相同或相似的概念或过程在下述实施例中不再赘述。
图11为本申请实施例提供的投屏方法的一种流程示意图,该方法可以应用于如图8所示的手机和平板电脑上。如图11所示,本申请实施例提供的投屏方法的过程可以包括:
S101,手机接收用户输入的投屏操作。
其中,用户所输入的投屏操作可以为通过手机上的手机助手APP输入的,例如通过点击上述图3中的“立即连接”控件,或者通过点击上述图7中的“无线投屏”控件。需要说明的是,本申请实施例以“手机助手APP”的命名为例示出,但其他具有相同或相似功能的APP同样适用于本申请实施例,比如“手机投屏APP”、“设备互联APP”等;另外,本申请实施例以“立即连接”的命名为例示出,但其他具有相同或相似功能的命名同样适用于本申请实施例,比如“一键投屏”、“开启投屏”等。
S102,手机响应于上述投屏操作,搜索并展示可用的投屏设备。
其中,手机助手APP接收到用户输入的投屏操作后,第一投屏模块可以调用蓝牙芯片的能力搜索附近可用的投屏设备。在本申请实施例中,当搜索到可用的投屏设备后,第一投屏模块可以获取到投屏设备的互联网协议地址(internet protocol address,IP地址)、MAC地址、通用唯一识别码(universally unique identifier,uuid)、设备标识以及设备名称等信息。可选地,第一投屏模块可以将投屏设备的上述信息发送至手机助手APP,以显示给用户查看。
在一些实施例中,鉴于手机显示屏显示尺寸的大小,手机助手APP可能无法将可用的投屏设备的上述信息都显示在可用设备列表上。因此,可用设备列表上可以仅显示可用的投屏设备的设备标识(如设备名称)。若用户想要查看某一投屏设备的其它信息,则可以对设备名称进行长按操作或双击操作,手机助手APP接收到长按操作或双击操作后,可显示出该投屏设备的其他信息。
在一些实施例中,手机助手APP所显示的可用设备列表中,包括了手机附近已开启蓝牙功能的所有设备,比如平板电脑、手机或穿戴设备。在另一些实施例中,手机助手APP在接收到已开启蓝牙功能的所有设备的信息后,可以筛选出支持投屏的设备以进行显示,比如穿戴设备不支持投屏,则手机助手APP在可用设备列表中不再显示穿戴设备。
S103,手机接收用户对可用的投屏设备中的平板电脑的选中操作。
用户通过手机助手APP所显示的可用设备列表,可以确定自己想要将手机进行投屏的设备。例如上述图4所示,可用的投屏设备有设备1和设备2,用户想要将手机投屏至设备2(即平板电脑),则可以点击该设备名称所在的区域。手机助手APP便可以接收到用户对该平板电脑的选中操作。
在一些实施例中,用户还可以通过语音输入对平板电脑的选择操作,例如,用户通过手机的麦克风语音输入“设备2”,麦克风接收到该声音信号后,可以转换为电信号并发送至手机助手APP。
S104,手机响应于上述选中操作,建立与平板电脑的通信连接,并与平板电脑协商投屏分辨率。
S105,手机获取编码器中可用编码块的数量,根据可用编码块的数量和投屏分辨率,计算最优编码帧率。
其中,协商投屏分辨率的过程、以及计算最优编码帧率的过程可以参见上述实施例的描述在此不再赘述。
S106,手机采用最优编码帧率和投屏分辨率对图像数据进行编码,并向平板电脑发送编码后的图像数据,以使平板电脑显示图像数据对应的图像。
在一些场景中,若用户不再需要将手机投屏至平板电脑,如图12所示,可在手机助手APP的界面上点击“断开连接”控件,手机助手APP接收到断开操作后,向第一投屏模块发送断开消息,第一投屏模块调用Wi-Fi芯片的能力断开与平板电脑的Wi-Fi P2P连接。
由上述描述可知,最优编码帧率是由手机所计算得到的,在另一些实施例中,该最优编码帧率也可以由平板电脑来计算得到,此过程可以包括步骤:
A:手机接收用户输入的投屏操作。
B:手机响应于上述投屏操作,搜索并展示可用的投屏设备。
C:手机接收用户对可用的投屏设备中的平板电脑的选中操作。
D:手机响应于上述选中操作,建立与平板电脑的通信连接,并与平板电脑协商投屏分辨率。
E:平板电脑获取手机的编码器中可用编码块的数量,根据可用编码块的数量和投屏分辨率,计算最优编码帧率。
F:平板电脑将最优编码帧率发送至手机。
G:手机采用最优编码帧率和投屏分辨率对显示界面的图像数据进行编码,并向平板电脑发送编码后的图像数据,以使平板电脑显示图像数据对应的图像。
相比较于该实施例,第一种实施例中,由手机在确定了最优编码帧率后,可直接采用该最优编码帧率进行编码,无需再由平板电脑确定并发送,减少了传输功耗。
上述投屏方法中,电子设备在将显示界面投屏至投屏设备时,可根据当前编码器中可用编码块的数量以及投屏数据的分辨率,确定一个最优编码帧率,使编码器在该最优编码帧率下进行编码,合理利用可用编码块,提高编码过程的成功率,从而提高投屏成功率。
上文详细介绍了本申请实施例提供的投屏方法的示例。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,例如检测单元、处理单元、显示单元等,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述投屏方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图1所示结构的设备。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的投屏方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的投屏方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的投屏方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种投屏方法,其特征在于,所述方法由第一电子设备执行,所述第一电子设备与第二电子设备建立有通信连接,所述方法包括:
向所述第二电子设备发送所述第一电子设备所支持显示图像的多个第一分辨率;
接收来自所述第二电子设备的目标分辨率,所述目标分辨率为所述第二电子设备从所述多个第一分辨率中选择的所支持显示图像的分辨率;
根据关系式:H×L×M≤N×n×n,确定目标编码帧率,其中,N×n×n为所述第一电子设备中编码器在预设时长内可编码的像素的数量,N为所述编码器中可用宏块的数量,n×n为每个可用宏块在预设时长内可编码的像素的数量,H×L为所述目标分辨率,M为所述目标编码帧率;
采用所述目标编码帧率和所述目标分辨率对待投屏的图像数据进行编码,得到编码数据,并向所述第二电子设备发送所述编码数据。
2.根据权利要求1所述的方法,其特征在于,所述目标编码帧率为满足所述关系式的最大整数。
3.根据权利要求1或2所述的方法,其特征在于,在所述确定目标编码帧率之前,所述方法还包括:
获取所述编码器中可用宏块的数量。
4.根据权利要求3所述的方法,其特征在于,所述获取所述编码器中可用宏块的数量,包括:
根据接口:hnMediaCodec.getMediaMacroBlockInfo().getAvailableNum()获取所述编码器中可用宏块的数量;
其中,HnMediaCodecManager hnMediaCodec=HnMediaCodecManager.getInstance()。
5.一种投屏方法,其特征在于,所述方法由第二电子设备执行,所述第二电子设备与第一电子设备建立有通信连接,所述方法包括:
接收来自所述第一电子设备的多个第一分辨率、以及所述第一电子设备中编码器在预设时长内可编码的像素的数量,所述第一分辨率为所述第一电子设备所支持显示图像的分辨率;
从所述多个第一分辨率中选择所述第二电子设备所支持显示图像的目标分辨率;
根据关系式:H×L×M≤N×n×n,确定目标编码帧率,其中,N×n×n为所述第一电子设备中编码器在预设时长内可编码的像素的数量,N为所述编码器中可用宏块的数量,n×n为每个可用宏块在预设时长内可编码的像素的数量,H×L为所述目标分辨率,M为所述目标编码帧率;
向所述第一电子设备发送所述目标分辨率和所述目标编码帧率;
接收来自所述第一电子设备的编码数据,并显示所述编码数据对应的图像,所述编码数据为所述第一电子设备采用所述目标编码帧率和所述目标分辨率对待投屏的图像数据进行编码所得到的数据。
6.一种投屏系统,其特征在于,包括第一电子设备和第二电子设备,所述第一电子设备执行如权利要求1至4中任一项所述的方法,所述第二电子设备执行如权利要求5所述的方法。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述存储器存储有一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述电子设备执行如权利要求1至4中任一项所述的方法,或者执行如权利要求5所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至4中任一项所述的方法,或者执行如权利要求5所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210600336 | 2022-05-30 | ||
CN2022106003366 | 2022-05-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116033158A CN116033158A (zh) | 2023-04-28 |
CN116033158B true CN116033158B (zh) | 2024-04-16 |
Family
ID=86090103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210901655.0A Active CN116033158B (zh) | 2022-05-30 | 2022-07-28 | 投屏方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116033158B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117294690B (zh) * | 2023-11-22 | 2024-04-12 | 荣耀终端有限公司 | 一种评估QoE的方法及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110392047A (zh) * | 2019-07-02 | 2019-10-29 | 华为技术有限公司 | 数据传输方法、装置及设备 |
CN110865782A (zh) * | 2019-09-29 | 2020-03-06 | 华为终端有限公司 | 数据传输方法、装置及设备 |
CN112558825A (zh) * | 2019-09-26 | 2021-03-26 | 华为技术有限公司 | 一种信息处理方法及电子设备 |
CN113407142A (zh) * | 2021-07-13 | 2021-09-17 | 海信视像科技股份有限公司 | 显示设备及投屏方法 |
CN113691850A (zh) * | 2021-08-25 | 2021-11-23 | 深圳康佳电子科技有限公司 | 投屏控制方法、装置、智能终端及计算机可读存储介质 |
CN113722058A (zh) * | 2021-06-16 | 2021-11-30 | 荣耀终端有限公司 | 一种资源调用方法及电子设备 |
WO2022052773A1 (zh) * | 2020-09-10 | 2022-03-17 | 华为技术有限公司 | 多窗口投屏方法及电子设备 |
-
2022
- 2022-07-28 CN CN202210901655.0A patent/CN116033158B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110392047A (zh) * | 2019-07-02 | 2019-10-29 | 华为技术有限公司 | 数据传输方法、装置及设备 |
CN112558825A (zh) * | 2019-09-26 | 2021-03-26 | 华为技术有限公司 | 一种信息处理方法及电子设备 |
CN110865782A (zh) * | 2019-09-29 | 2020-03-06 | 华为终端有限公司 | 数据传输方法、装置及设备 |
WO2022052773A1 (zh) * | 2020-09-10 | 2022-03-17 | 华为技术有限公司 | 多窗口投屏方法及电子设备 |
CN113722058A (zh) * | 2021-06-16 | 2021-11-30 | 荣耀终端有限公司 | 一种资源调用方法及电子设备 |
CN113407142A (zh) * | 2021-07-13 | 2021-09-17 | 海信视像科技股份有限公司 | 显示设备及投屏方法 |
CN113691850A (zh) * | 2021-08-25 | 2021-11-23 | 深圳康佳电子科技有限公司 | 投屏控制方法、装置、智能终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116033158A (zh) | 2023-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022052773A1 (zh) | 多窗口投屏方法及电子设备 | |
CN112394895B (zh) | 画面跨设备显示方法与装置、电子设备 | |
WO2022083465A1 (zh) | 电子设备的投屏方法及其介质和电子设备 | |
KR20150082940A (ko) | 화면의 회전을 컨트롤할 수 있는 전자 장치 및 방법 | |
US20240073978A1 (en) | Method for monitoring link and terminal device | |
WO2022222924A1 (zh) | 一种投屏显示参数调节方法 | |
WO2023005900A1 (zh) | 一种投屏方法、电子设备及系统 | |
CN116033158B (zh) | 投屏方法和电子设备 | |
CN116033157B (zh) | 投屏方法和电子设备 | |
CN112911337A (zh) | 用于配置终端设备的视频封面图片的方法和装置 | |
CN116056053B (zh) | 投屏方法、电子设备、系统及计算机可读存储介质 | |
WO2023045392A1 (zh) | 一种云手机的实现方法及装置 | |
CN114928898B (zh) | 建立基于WiFi直接连接的会话的方法和装置 | |
WO2022068882A1 (zh) | 镜像投屏方法、装置及系统 | |
EP4283464A1 (en) | Distributed device capability virtualization method, medium, and electronic device | |
WO2022206600A1 (zh) | 一种投屏方法、系统及相关装置 | |
CN117135299B (zh) | 视频录制方法和电子设备 | |
CN117135729B (zh) | 多设备协同方法、系统及终端设备 | |
WO2024109443A1 (zh) | 一种设备连接方法、设备及系统 | |
CN116684521B (zh) | 音频处理方法、设备及存储介质 | |
CN116055715B (zh) | 编解码器的调度方法及电子设备 | |
CN117729561B (zh) | 系统升级方法、终端及存储介质 | |
CN116744106B (zh) | 相机应用的控制方法和终端设备 | |
WO2024159925A1 (zh) | 一种投屏方法、投屏系统和电子设备 | |
WO2024198633A1 (zh) | 一种视频切换方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |