原生程序界面扩展方法、装置、存储介质及电子设备与流程

未命名 08-12 阅读:88 评论:0


1.本技术涉及计算机领域,具体而言,涉及一种原生程序界面扩展方法、装置、存储介质及电子设备。


背景技术:

2.目前,大部分的直播平台为了方便其平台下的主播进行直播,都开发有与直播平台配套的直播工具,但也有一些第三方直播工具因其本身具有成熟、稳定的特点,加之部分主播长期养成的使用习惯,导致目前各直播平台仍有很大一部分主播仍然采用第三方直播工具进行开播。
3.然而,第三方直播工具与直播平台提供的直播工具相比,直播平台提供的直播工具除了包含最基本的直播功能,还提供有与直播平台配到的特有交互功能。因此,为了使用第三方直播工具主播同样能够使用与直播平台配到的特有交互功能,需要对第三方直播工具原生的交互界面进行扩展。


技术实现要素:

4.为了克服现有技术中的至少一个不足,本技术提供一种原生程序界面扩展方法、装置、存储介质及电子设备,具体包括:
5.第一方面,本技术提供一种原生程序界面扩展方法,应用于电子设备,所述电子设备配置有所述原生程序以及被所述原生程序启动时加载的目标动态库,所述方法包括:
6.通过所述目标动态库获取所述原生程序界面中的控件容置对象;
7.通过所述目标动态库调用所述控件容置对象的控件添加方法,将扩展控件添加到所述控件容置对象的显示区域,其中,所述扩展控件绑定有所述原生程序之外的扩展交互功能。
8.结合第一方面的可选实施方式,所述方法还包括:
9.接收用户对所述扩展控件的点击操作;
10.通过所述目标动态库响应所述点击操作,显示提供所述扩展交互功能的扩展交互界面。
11.结合第一方面的可选实施方式,显示提供所述扩展交互功能的扩展交互界面,包括:
12.通过所述目标动态库获取所述原生程序界面中预设区域的颜色信息;
13.显示提供所述扩展交互功能且具有所述颜色信息的扩展交互界面。
14.结合第一方面的可选实施方式,所述通过所述目标动态库获取所述原生程序界面中预设区域的颜色信息,包括:
15.通过所述动态截取所述原生程序界面中预设区域的图像;
16.从所述图像中获取所述颜色信息。
17.结合第一方面的可选实施方式,所述通过所述目标动态库获取所述原生程序界面
中的控件容置对象,包括:
18.若通过所述目标动态库监听到目标事件,则通过所述目标动态库获取所述原生程序界面中的控件容置对象,其中,所述目标事件表征所述原生程序的界面渲染完成。
19.结合第一方面的可选实施方式,所述原生程序为obs,所述控件容置对象为所述obs的菜单栏,所述通过所述目标动态库获取所述原生程序界面中的控件容置对象,包括:
20.通过所述目标动态库调用obs_frontend_get_main_window()接口,获得所述obs的qwidget对象;
21.调用所述qwidget对象中的qmainwindow类的menubar接口,获得所述菜单栏。
22.结合第一方面的可选实施方式,所述通过所述目标动态库调用所述控件容置对象的控件添加方法,将扩展控件添加到所述控件容置对象的显示区域,包括:
23.通过所述目标动态库将构造的qaction对象作为所述扩展控件;
24.调用所述qwidget对象中的addaction接口,将所述扩展控件添加到所述控件容置对象的显示区域。
25.第二方面,本技术还提供一种原生程序界面扩展装置,应用于电子设备,所述电子设备配置有所述原生程序以及被所述原生程序启动时加载的目标动态库,所述装置包括:
26.对象获取模块,用于通过所述目标动态库获取所述原生程序界面中的控件容置对象;
27.控件添加模块,用于通过所述目标动态库调用所述控件容置对象的控件添加方法,将扩展控件添加到所述控件容置对象的显示区域,其中,所述扩展控件绑定有所述原生程序之外的扩展交互功能。
28.结合第二方面的可选实施方式,所述控件添加模块还用于:
29.接收用户对所述扩展控件的点击操作;
30.通过所述目标动态库响应所述点击操作,显示提供所述扩展交互功能的扩展交互界面。
31.结合第二方面的可选实施方式,所述控件添加模块还用于:
32.通过所述目标动态库获取所述原生程序界面中预设区域的颜色信息;
33.显示提供所述扩展交互功能且具有所述颜色信息的扩展交互界面。
34.结合第二方面的可选实施方式,所述控件添加模块还用于:
35.通过所述动态截取所述原生程序界面中预设区域的图像;
36.从所述图像中获取所述颜色信息。
37.结合第二方面的可选实施方式,所述对象获取模块还用于:
38.若通过所述目标动态库监听到目标事件,则通过所述目标动态库获取所述原生程序界面中的控件容置对象,其中,所述目标事件表征所述原生程序的界面渲染完成。
39.结合第二方面的可选实施方式,所述原生程序为obs,所述控件容置对象为所述obs的菜单栏,所述对象获取模块还用于:
40.通过所述目标动态库调用obs_frontend_get_main_window()接口,获得所述obs的qwidget对象;
41.调用所述qwidget对象中的qmainwindow类的menubar接口,获得所述菜单栏。
42.结合第二方面的可选实施方式,所述控件添加模块还用于:
43.通过所述目标动态库将构造的qaction对象作为所述扩展控件;
44.调用所述qwidget对象中的addaction接口,将所述扩展控件添加到所述控件容置对象的显示区域。
45.第三方面,本技术还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现所述的原生程序界面扩展方法。
46.第四方面,本技术还提供一种电子设备,所述电子设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,实现所述的原生程序界面扩展方法。
47.相对于现有技术而言,本技术具有以下有益效果:
48.本技术提供一种原生程序界面扩展方法、装置、存储介质及电子设备。其中,电子设备配置有原生程序以及被原生程序启动时加载的目标动态库,通过目标动态库获取原生程序界面中的控件容置对象;通过目标动态库调用控件容置对象的控件添加方法,将扩展控件添加到控件容置对象的显示区域,其中,扩展控件绑定有原生程序之外的扩展交互功能。从而直接基于发行版的原生程序,将扩展功能的入口嵌入到该原生程序的程序界面中。
附图说明
49.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
50.图1为本技术实施例提供的原生程序界面扩展方法的流程图之一;
51.图2为本技术实施例提供的obs的原生程序界面的区域示意图;
52.图3为本技术实施例提供的obs中的扩展控件示意图;
53.图4为本技术实施例提供的原生程序界面扩展方法的流程图之二;
54.图5为本技术实施例提供的原生程序界面扩展装置的结构示意图;
55.图6为本技术实施例提供的电子设备结构示意图。
56.图标:101-对象获取模块;102-控件添加模块;201-存储器;202-处理器;203-通信单元;204-系统总线。
具体实施方式
57.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
58.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
59.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
60.在本技术的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
61.基于以上声明,正如背景技术中所介绍的,鉴于目前还有相当一部分主播仍然在使用第三方直播工具进行直播,为了使用第三方直播工具主播同样能够使用与直播平台配套的特有交互功能,需要对第三方直播工具原生的交互界面进行扩展。目前主要通过源插件以及二次开发的方式对现有第三方直播工具进行扩展。
62.示例性的,以主播中使用最多的第三方直播工具obs studio(以下简称obs)为例。obs目前已经能够提供以下功能:
63.1、支持流媒体直播服务,使用obs可以在主流的直播平台进行直播。
64.2、支持录制和直播本地视频和音频,可以连接摄像头、显示器捕获和麦克风录制音频等。
65.3、支持屏幕捕获和窗口捕获,可以录制和直播电脑屏幕内容和窗口内容。
66.4、支持虚拟摄像头,可以在直播中使用视频特效和转场等。
67.5、直播过程中支持添加图片、文本、浏览器插件等多种覆盖物,丰富直播内容。
68.6、直播支持添加视频过滤器、转场效果、颜色校正等,可以实现基本的视频后期处理。
69.7、支持通过场景功能预先设置直播布局和内容,通过一键式快速切换场景,方便直播操作。
70.8、支持录制和直播过程中实时编辑麦克风音量、视频色彩等,灵活调整音视频参数。
71.9、直播结束后可以保存录制内容,支持导出视频到各种常见格式,方便后续发布和编辑。
72.10、obs支持windows、macos和linux等主流的操作系统,并且软件全部开源免费,有较好的普适性。
73.尽管obs已经提供了上述丰富的直播功能,但仍然不足以满足当下多样化的直播需求,因此,各直播平台相继推出了具有平台特色的直播工具。例如,一些直播平台推出的直播除了包括基础的直播功能,还包括有ai助理、像素伙伴、ai画画机、摸了个鱼等扩展功能,其中,ai助理支持语音输入,可用于在主播游戏直播期间为主播提供辅助,类似于由ai来实现游戏解说;像素伙伴用来和观众互动,即接收观众发送的互动弹幕、送礼等,在满足一定触发条件后,将与弹幕或者礼物相关联的虚拟形象显示到主播的直播间;ai画画机用于通过ai来实现主播配置要求而生成的各类图像或短小视频之类;摸了个鱼用户主播在直播空闲时间完一些小游戏。因此,为了使得使用obs进行直播的主播同样能够使用这些扩展功能,需要对obs的原生程序界面进行扩展,将上述功能的入口嵌入到obs的原生程序界面中。
74.目前可以通过obs提供的插件扩展功能,将上述扩展功能的入口以源插件的方式嵌入到obs的原生程序界面中,但源插件仅能实现一些简单的扩展功能,不能满足直播场景下多样复杂的需求;并且,源插件的嵌入位置的入口太深,需要主播经过较长的操作路径才能找到,因此,并便于主播使用。又或者基于obs源码的方式进行深度改造,但该方式需要对obs源码有深入了解,实现起来较为复杂,且工作量极大。
75.基于上述技术问题的发现,发明人经过创造性劳动提出下述技术方案以解决或者改善上述问题。需要注意的是,以上现有技术中的方案所存在的缺陷以及提出的相应解决方案,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本技术实施例针对上述问题所提出的解决方案,都应该是发明人在发明创造过程中对本技术做出的贡献,而不应当理解为本领域技术人员所公知的技术内容。
76.鉴于此,本实施例提供一种原生程序界面扩展方法。该方法中,电子设备配置有原生程序以及被原生程序启动时加载的目标动态库,通过目标动态库获取原生程序界面中的控件容置对象;通过目标动态库调用控件容置对象的控件添加方法,将扩展控件添加到控件容置对象的显示区域,其中,扩展控件绑定有原生程序之外的扩展交互功能。从而直接基于发行版的原生程序,将扩展功能的入口嵌入到该原生程序的程序界面中。
77.应理解的是,上述原生程序不仅限于上述实施例中提及到的第三方直播工具,还可以是其他与官方程序提供相似功能的第三方程序,本实施例不对原生程序的类型做具体限定。此外,该电子设备可以是,但不限于,移动终端、平板计算机、膝上型计算机、台式电脑等,例如,该移动终端可以包括智能手机、个人数字助理(personal digital assistant,pda)、游戏设备等。
78.为使本实施例提供的方案更加清楚,下面结合图1对该方法的各个步骤进行详细阐述。但应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本技术内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。如图1所示,该方法包括:
79.s101,通过目标动态库获取原生程序界面中的控件容置对象。
80.应理解的是,原生程序在启动的时候,需要将特定路径下的动态库记载到内存中,以支持该原生生成后续的运行。因此,本实施例中将原生程序界面中添加扩展控件的实现方式编译为目标动态库,使得原生程序在启动时进行加载运行。
81.继续以obs为例,研究发现,obs启动后会加载一系列库和插件,并且,obs加载系列库和插件时,会调用插件或者库中的通用接口obs_module_load()、obs_module_unload()这两个接口,其中,前者用于实现库加载时的准备工作,后者用于实现库卸载时的资源释放等工作。因此,为了避免同obs的源码一同编译并达到更方便分发的目的,可将原生程序界面中添加扩展控件的实现方式,单独编译为自定义的目标动态库,并将目标动态库放置到obs开播工具所在插件目录中,使得当obs开播工具进程启动后,即可加载该目标动态库的obs_module_load()接口时,就可以在obs的原生程序界面中初始化扩展功能的入口,以达到非源码侵入的方式,将扩展功能的入口嵌入到原生程序界面中。
82.本实施例中,为避免添加扩展插件时影响到原生程序的正常运行,在原生程序初始化完成之后,才将扩展插件插入到远程程序界面中。因此,上述步骤s101的一可选实施方式包括:
83.若通过目标动态库监听到目标事件,则电子设备通过目标动态库获取原生程序界面中的控件容置对象,其中,目标事件表征原生程序的界面渲染完成。
84.继续以obs为例,通过对obs的动态库obs-frontend-api.dll进行研究后发现,其中包括有obs_frontend_add_event_callback()接口,用于监听obs运行期间的一些事件。因此,目标动态库调用obs_frontend_add_event_callback()接口注册前端监听事件,若监听到obs_frontend_event_finished_loading事件,则意味着obs已经完成原生程序界面的初始化,此时可以从obs的原生程序界面中获取的控件容置对象。
85.进一步地,鉴于目前obs没有提供给外部开发者可以直接使用的入口位置和实现自定义界面的方式;因此,如何将扩展程序的入口嵌入到obs显眼或便捷操作的位置便成为一个难题。经过大量对比后,本实施例选取obs的菜单栏作为该控件容置。
86.为了获取到obs的菜单栏,经过对obs的动态库obs-frontend-api.dll进行分析后,其提供有可获取到obs主窗口对象的接口obs_frontend_get_main_window()。由于obs是基于qt开发的跨平台的程序,因此,进一步对qt不同版本的qtwidget库(qt5widgets.dll/qt6widgets.dll或qt5widgetsd.dll/qt6widgetsd.dll)进行分析后,发现可以通过qmainwindow对象的menubar接口,获取到主窗口中的菜单栏。
87.鉴于上述分析,该电子设备可以通过目标动态库调用obs_frontend_get_main_window()接口,获得obs的qwidget对象;然后,调用qwidget对象中的qmainwindow类的menubar接口,获得菜单栏。
88.除了可采用以上方式外,还可以使用obs-frontend-api.dll中的obs_frontend_add_tools_menu_item(),将扩展控件通过添加为菜单项。
89.结合上述实施例中对控件容置对象的介绍,继续参见图1,该方法还包括:
90.s102,通过目标动态库调用控件容置对象的控件添加方法,将扩展控件添加到控件容置对象的显示区域。
91.其中,扩展控件绑定有原生程序之外的扩展交互功能。示例性的,继续以obs为例,图2中示出了obs的原生程序中的菜单栏,其中,包括有“文件”、“编辑”、“视图”、“配置文件”、“工具”、“帮助”等菜单项。如图3所示,该电子设备通过目标动态库将构造的qaction对象作为扩展控件;调用qwidget对象中的addaction接口,将扩展控件添加到控件容置对象的显示区域。继续参见图3,将扩展控件添加到在菜单项“帮助”之后,并且,假定与该扩展控件绑定的扩展交互功能由虎牙直播平台提供,因此,可以通过qstring构造接口将扩展控件命名为“虎牙直播”。如此,使用obs的主播点击“虎牙直播”即可使用虎牙平台提供的扩展交互功能。因此,如图4所示,在本实施例中,该方法还包括:
92.s103,接收用户对扩展控件的点击操作。
93.s104,通过目标动态库响应点击操作,显示提供扩展交互功能的扩展交互界面。
94.示例性的,继续以图3所示界面为例,当接收到用于对图3中“虎牙直播”的点击操作;响应该点击操作,在图3所示界面的基础上显示扩展交互界面,该扩展交互界面中可以展示虎牙直播平台提供的ai助理、像素伙伴、ai画画机、摸了个鱼等扩展交互功能对应入口的入口标识,使得主播可以通过该扩展交互界面使用这些扩展交互功能。
95.对于上述扩展交互界面,从实现层面来讲,在上述实施例中,将扩展功能的入口添加到原生程序比较显眼的位置后,该电子设备则可以基于扩展控接收到入口操作的事件,
并该事件中处理时提供各种扩展功能的扩展交互界面。为使扩展功能的交互界面,不再受限于obs过于单调的ui元素限制或者qt库编译开发环境的要求,理论上可采用多种不同的ui框架来展示自定义的扩展交互界面。例如,可以通过原生win32、duilib、qt、imgui、wxwidgets甚至其他语言gui框架来实现扩展交互界面。
96.研究还发现,虽然通过上述实施方式可以达到非源码侵入的方式,将扩展功能的入口嵌入到原生程序界面中。但原生程序并不能对扩展交互界面的显示风格进行控制,这就导致原生程序界面与扩展交互界面之间可能出现风格不一致的问题。例如,原生程序界面的主题为暗黑主题,而扩展交互界面的主题为明亮主题;或者,原生程序界面的主题为明亮主题,而扩展交互界面的主题为暗黑主题。
97.鉴于此,上述实施例中的步骤s104可以包括以下实施方式:
98.s104-1,通过态库获取原生程序界面中预设区域的颜色信息。
99.可选实施方式中,该电子设备可以通过动态截取原生程序界面中预设区域的图像;从图像中获取颜色信息。例如,该目标动态库可以截取菜单栏的图片,并通过对菜单栏的图片进行处理,获得菜单栏的颜色信息。
100.s104-2,显示提供扩展交互功能且具有颜色信息的扩展交互界面。
101.如此,当原生程序界面为暗黑主题时,响应用户操作所显示的扩展交互界面同样为暗黑主题,从而达到使得扩展交互界面与原生程序界面风格一直的目的。
102.基于与上述原生程序界面扩展方法相同的发明构思,本实施例还提供一种原生程序界面扩展装置,原生程序界面扩展装置包括至少一个可以软件形式存储于存储器201或固化在电子设备中的软件功能模块。电子设备中的处理器202用于执行存储器201中存储的可执行模块。例如,原生程序界面扩展装置所包括的软件功能模块及计算机程序等。请参照图5,从功能上划分,原生程序界面扩展装置可以包括:
103.对象获取模块101,用于通过目标动态库获取原生程序界面中的控件容置对象;
104.控件添加模块102,用于通过目标动态库调用控件容置对象的控件添加方法,将扩展控件添加到控件容置对象的显示区域,其中,扩展控件绑定有原生程序之外的扩展交互功能。
105.在本实施例中,该对象获取模块101用于实现图1中的步骤s101,该控件添加模块102用于实现图1中的步骤s102。关于上述各模块的详细介绍可以参见对应步骤的具体实施方式,本实施例不再进行阐述。当然,由于与原生程序界面扩展方法具有相同的发明构思,因此,上述各模块还可以用于实现该方法的其他步骤或者子步骤。
106.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
107.还应理解的是,以上实施方式如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。
108.因此,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有
计算机程序,该计算机程序被处理器执行时,实现本实施例提供的原生程序界面扩展方法。其中,该计算机可读存储介质可以是u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
109.为本实施例提供的一种电子设备,如图6所示,该电子设备可包括处理器202及存储器201。并且,存储器201存储有计算机程序,处理器通过读取并执行存储器201中与以上实施方式对应的计算机程序,实现本实施例所提供的原生程序界面扩展方法。
110.继续参见图6,该电子设备还包括有通信单元203。该存储器201、处理器202以及通信单元203各元件相互之间通过系统总线204直接或间接地电性连接,以实现数据的传输或交互。
111.其中,该存储器201可以是基于任何电子、磁性、光学或其它物理原理的信息记录装置,用于记录执行指令、数据等。在一些实施方式中,该存储器201可以是,但不限于,易失存储器、非易失性存储器、存储驱动器等。
112.在一些实施方式中,该易失存储器可以是随机存取存储器(random access memory,ram);在一些实施方式中,该非易失性存储器可以是只读存储器(read only memory,rom)、可编程只读存储器(programmable read-only memory,prom)、可擦除只读存储器(erasable programmable read-only memory,eprom)、电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)、闪存等;在一些实施方式中,该存储驱动器可以是磁盘驱动器、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合等。
113.该通信单元203用于通过网络收发数据。在一些实施方式中,该网络可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(local area network,lan)、广域网(wide area network,wan)、无线局域网(wireless local area networks,wlan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、公共电话交换网(public switched telephone network,pstn)、蓝牙网络、zigbee网络、或近场通信(near field communication,nfc)网络等,或其任意组合。在一些实施例中,网络可以包括一个或多个网络接入点。例如,网络可以包括有线或无线网络接入点,例如基站和/或网络交换节点,服务请求处理系统的一个或多个组件可以通过该接入点连接到网络以交换数据和/或信息。
114.该处理器202可能是一种集成电路芯片,具有信号的处理能力,并且,该处理器可以包括一个或多个处理核(例如,单核处理器或多核处理器)。仅作为举例,上述处理器可以包括中央处理单元(central processing unit,cpu)、专用集成电路(application specific integrated circuit,asic)、专用指令集处理器(application specific instruction-set processor,asip)、图形处理单元(graphics processing unit,gpu)、物理处理单元(physics processing unit,ppu)、数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field programmable gate array,fpga)、可编程逻辑器件(programmable logic device,pld)、控制器、微控制器单元、简化指令集计算机(reduced instruction set computing,risc)、或微处理器等,或其任意组合。
115.应该理解到的是,在上述实施方式中所揭露的装置和方法,也可以通过其它的方
式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
116.以上所述,仅为本技术的各种实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。

技术特征:
1.一种原生程序界面扩展方法,其特征在于,应用于电子设备,所述电子设备配置有所述原生程序以及被所述原生程序启动时加载的目标动态库,所述方法包括:通过所述目标动态库获取所述原生程序界面中的控件容置对象;通过所述目标动态库调用所述控件容置对象的控件添加方法,将扩展控件添加到所述控件容置对象的显示区域,其中,所述扩展控件绑定有所述原生程序之外的扩展交互功能。2.根据权利要求1所述的原生程序界面扩展方法,其特征在于,所述方法还包括:接收用户对所述扩展控件的点击操作;通过所述目标动态库响应所述点击操作,显示提供所述扩展交互功能的扩展交互界面。3.根据权利要求2所述的原生程序界面扩展方法,其特征在于,显示提供所述扩展交互功能的扩展交互界面,包括:通过所述目标动态库获取所述原生程序界面中预设区域的颜色信息;显示提供所述扩展交互功能且具有所述颜色信息的扩展交互界面。4.根据权利要求3所述的原生程序界面扩展方法,其特征在于,所述通过所述目标动态库获取所述原生程序界面中预设区域的颜色信息,包括:通过所述动态截取所述原生程序界面中预设区域的图像;从所述图像中获取所述颜色信息。5.根据权利要求1所述的原生程序界面扩展方法,其特征在于,所述通过所述目标动态库获取所述原生程序界面中的控件容置对象,包括:若通过所述目标动态库监听到目标事件,则通过所述目标动态库获取所述原生程序界面中的控件容置对象,其中,所述目标事件表征所述原生程序的界面渲染完成。6.根据权利要求1所述的原生程序界面扩展方法,其特征在于,所述原生程序为obs,所述控件容置对象为所述obs的菜单栏,所述通过所述目标动态库获取所述原生程序界面中的控件容置对象,包括:通过所述目标动态库调用obs_frontend_get_main_window()接口,获得所述obs的qwidget对象;调用所述qwidget对象中的qmainwindow类的menubar接口,获得所述菜单栏。7.根据权利要求6所述的原生程序界面扩展方法,其特征在于,所述通过所述目标动态库调用所述控件容置对象的控件添加方法,将扩展控件添加到所述控件容置对象的显示区域,包括:通过所述目标动态库将构造的qaction对象作为所述扩展控件;调用所述qwidget对象中的addaction接口,将所述扩展控件添加到所述控件容置对象的显示区域。8.一种原生程序界面扩展装置,其特征在于,应用于电子设备,所述电子设备配置有所述原生程序以及被所述原生程序启动时加载的目标动态库,所述装置包括:对象获取模块,用于通过所述目标动态库获取所述原生程序界面中的控件容置对象;控件添加模块,用于通过所述目标动态库调用所述控件容置对象的控件添加方法,将扩展控件添加到所述控件容置对象的显示区域,其中,所述扩展控件绑定有所述原生程序之外的扩展交互功能。
9.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-7任意一项所述的原生程序界面扩展方法。10.一种电子设备,其特征在于,所述电子设备包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1-7任意一项所述的原生程序界面扩展方法。

技术总结
本申请提供一种原生程序界面扩展方法、装置、存储介质及电子设备,涉及计算机领域。其中,电子设备配置有原生程序以及兼容原生程序的目标动态库,通过目标动态库获取原生程序界面中的控件容置对象;通过目标动态库调用控件容置对象的控件添加方法,将扩展控件添加到控件容置对象的显示区域,其中,扩展控件绑定有原生程序之外的扩展交互功能。从而直接基于发行版的原生程序,将扩展功能的入口嵌入到该原生程序的程序界面中。生程序的程序界面中。生程序的程序界面中。


技术研发人员:周浩 唐治伟 刘昱彤
受保护的技术使用者:广州虎牙科技有限公司
技术研发日:2023.05.18
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐