一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种视频播放器功能扩展方法、装置、设备及存储介质与流程

2022-07-23 13:40:58 来源:中国专利 TAG:


1.本发明涉及软件开发技术领域,特别涉及一种视频播放器功能扩展方法、装置、设备及存储介质。


背景技术:

2.现有技术中,在引入不存在音视频的编解码、封装格式、转码等功能的视频播放器的情况下,如果项目需要用到音视频的编解码、封装格式、转码等功能,必须引入新的具有上述需求功能的三方库。如此一来,引入的三方库的版本可能会与视频播放器中封装的底层依赖库的版本不同,会导致版本冲突,从而导致项目编译报错无法进行项目的开发。另外,引入新的三方库会占用较大资源空间,同时会使得开发周期较长,增加开发难度。
3.因此,上述技术问题是需要本领域技术人员亟待解决的技术问题。


技术实现要素:

4.有鉴于此,本发明的目的在于提供一种视频播放器功能扩展方法、装置、设备及存储介质,避免了额外引入底层依赖库的三方库,进而避免三方库与视频播放器中封装的底层依赖库存在版本冲突,同时节省资源空间,提高开发效率。其具体方案如下:本技术的第一方面提供了一种视频播放器功能扩展方法,包括:对视频播放器项目中与扩展功能相关的配置文件进行修改;为修改后的视频播放器项目增加扩展功能接口,得到扩展视频播放器项目;其中,所述扩展功能接口用于提供视频播放器的底层依赖库的扩展功能;基于所述扩展视频播放器项目创建对应的动态链接库并将所述动态链接库引入视频播放器项目,以得到具有所述底层依赖库的扩展功能的视频播放器。
5.可选的,所述对视频播放器项目中与扩展功能相关的配置文件进行修改,包括:为视频播放器项目添加支持转码功能、支持流媒体功能、支持多种音频格式转化功能、支持解码多种音频格式功能中至少一种的配置文件;和/或,为视频播放器项目注释掉实时传输功能、过滤功能中至少一种的配置文件;和/或,为视频播放器项目使能视音频分离器、使能编码和解码功能中至少一种的配置文件。
6.可选的,所述为修改后的视频播放器项目增加扩展功能接口,包括:为修改后的视频播放器项目的工程文件增加提供本地转码功能、流媒体下载功能、边下载边转码功能、音视频格式转换功能、封装音视频功能中的至少一种的所述扩展功能接口。
7.可选的,所述基于所述扩展视频播放器项目创建对应的动态链接库,包括:将所述扩展视频播放器项目的工程文件的静态链接库配置参数修改为动态链接库配置参数,并编译生成动态链接库软件开发工具包。
8.可选的,所述对视频播放器项目中与扩展功能相关的配置文件进行修改,包括:通过脚本文件的方式对视频播放器项目中与扩展功能相关的配置文件进行修改;对包含修改后配置文件的视频播放器项目的工程文件进行编译,以得到新的可执行脚本文件;相应的,所述编译生成动态链接库软件开发工具包,包括:对包含新的可执行脚本文件的所述扩展视频播放器项目的工程文件进行编译,以生成动态链接库软件开发工具包。
9.可选的,所述将所述动态链接库引入视频播放器项目,包括:将所述动态链接库导入视频播放器项目,并在视频播放器项目与所述动态链接库之间添加依赖关系。
10.可选的,视频播放器项目为ijkplayer项目,底层依赖库为ffmpeg框架。
11.本技术的第二方面提供了一种视频播放器功能扩展装置,包括:配置修改模块,用于对视频播放器项目中与扩展功能相关的配置文件进行修改;接口增加模块,用于为修改后的视频播放器项目增加扩展功能接口,得到扩展视频播放器项目;其中,所述扩展功能接口用于提供视频播放器的底层依赖库的扩展功能;创建引入模块,用于基于所述扩展视频播放器项目创建对应的动态链接库并将所述动态链接库引入视频播放器项目,以得到具有所述底层依赖库的扩展功能的视频播放器。
12.本技术的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述视频播放器功能扩展方法。
13.本技术的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述视频播放器功能扩展方法。
14.本技术中,先对视频播放器项目中与扩展功能相关的配置文件进行修改;然后为修改后的视频播放器项目增加扩展功能接口,得到扩展视频播放器项目;其中,所述扩展功能接口用于提供视频播放器的底层依赖库的扩展功能;最后基于所述扩展视频播放器项目创建对应的动态链接库并将所述动态链接库引入视频播放器项目,以得到具有所述底层依赖库的扩展功能的视频播放器。可见,本技术通过修改视频播放器项目中的配置文件并增加扩展功能接口的方式,来扩展视频播放器所依赖的底层依赖库以满足项目功能需求,在项目工程中引入动态链接库避免了额外引入底层依赖库的三方库,进而避免三方库与视频播放器中封装的底层依赖库存在版本冲突,同时节省资源空间,提高开发效率。
附图说明
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
16.图1为本技术提供的一种视频播放器功能扩展方法流程图;
图2为本技术提供的一种视频播放器功能扩展装置结构示意图;图3为本技术提供的一种视频播放器功能扩展电子设备结构图。
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.目前,在引入不存在音视频的编解码、封装格式、转码等功能的视频播放器的情况下,如果项目需要用到音视频的编解码、封装格式、转码等功能,必须引入新的具有上述需求功能的三方库。如此一来,引入的三方库的版本可能会与视频播放器中封装的底层依赖库的版本不同,会导致版本冲突,从而导致项目编译报错无法进行项目的开发。另外,引入新的三方库会占用较大资源空间,同时会使得开发周期较长,增加开发难度。针对上述技术缺陷,本技术提供一种视频播放器功能扩展方案,能够避免了额外引入底层依赖库的三方库,进而避免三方库与视频播放器中封装的底层依赖库存在版本冲突,同时节省资源空间,提高开发效率。
19.图1为本技术实施例提供的一种视频播放器功能扩展方法流程图。参见图1所示,该视频播放器功能扩展方法包括:s11:对视频播放器项目中与扩展功能相关的配置文件进行修改。
20.本实施例中,先对视频播放器项目中与扩展功能相关的配置文件进行修改。修改配置文件包括但不限于与添加功能相应的配置文件、与注释功能相应的配置文件、与使能功能相应的配合文件。具体为,为视频播放器项目添加支持转码功能、支持流媒体功能、支持多种音频格式转化功能、支持解码多种音频格式功能中至少一种的配置文件;和/或,为视频播放器项目注释掉实时传输功能、过滤功能中至少一种的配置文件;和/或,为视频播放器项目使能视音频分离器、使能编码和解码功能中至少一种的配置文件。其中,为视频播放器项目注释掉实时传输功能、过滤功能中至少一种的配置文件也即通过代码注释的方式对配置文件进行修改以关闭实时传输功能、过滤功能。
21.本实施例中,当所述视频播放器项目为ijkplayer项目,底层依赖库为ffmpeg(fast forward mpeg)框架。上述步骤具体为通过修改ijkplayer的配置文件,配置文件的修改包括以下任一种或多种:添加支持ffmpeg转码、支持rtsp、支持多种音频格式转换、支持解码多种音频格式的功能;注释掉实时传输(real-time transport protocol,rtp)功能和过滤(filters)功能;使能demuxers视音频分离器、使能编码器和解码器。可以理解,ffmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,ijkplayer是一种开源的基于ffmpeg的轻量级android/ios视频播放器,ijkplayer是基于ffmpeg基础上跨平台(android/ios)的移动端开源组件。
22.进一步的,上述步骤也可以通过脚本文件“init-ios.sh”进行重现构建ijkplayer所依赖的ffmpeg库。具体为先通过脚本文件的方式对视频播放器项目中与扩展功能相关的配置文件进行修改,然后对包含修改后配置文件的视频播放器项目的工程文件进行编译,以得到新的可执行脚本文件。从而在后续步骤中对包含新的可执行脚本文件的所述扩展视
频播放器项目的工程文件进行编译,以生成动态链接库软件开发工具包。
23.s12:为修改后的视频播放器项目增加扩展功能接口,得到扩展视频播放器项目;其中,所述扩展功能接口用于提供视频播放器的底层依赖库的扩展功能。
24.本实施例中,在对视频播放器项目中与扩展功能相关的配置文件进行修改之后,进一步为修改后的视频播放器项目增加扩展功能接口,得到扩展视频播放器项目。上述扩展功能接口提供视频播放器的底层依赖库的扩展功能。具体来说,主要为修改后的视频播放器项目的工程文件增加提供本地转码功能、流媒体下载功能、边下载边转码功能、音视频格式转换功能、封装音视频功能中的至少一种的所述扩展功能接口。也即给ijkplayer项目的工程文件增加ffmpeg功能相关接口,提供相关功能api,供使用者调用。接口功能包括但不限于本地转码、rtsp下载\边下载边转码\音视频格式转换、封装音视频等功能。
25.s13:基于所述扩展视频播放器项目创建对应的动态链接库并将所述动态链接库引入视频播放器项目,以得到具有所述底层依赖库的扩展功能的视频播放器。
26.本实施例中,首先基于所述扩展视频播放器项目创建对应的动态链接库,然后将所述动态链接库引入视频播放器项目,以得到具有所述底层依赖库的扩展功能的视频播放器。本实施例中,通过步骤s11和步骤s12得到的是可以生成静态链接库或者动态链接库的所述扩展视频播放器项目的工程文件。此时,如果选择生成静态链接库,也可以满足简单的ios项目工程中的使用。但是,如果在ios项目工程中存在的多个ffmpeg库的版本均不一致,则会导致工程报重复类文件的错误,而使用动态链接库则能够在编译过程中不再进行编译,避免ios工程报错。
27.需要说明的是,切换静态链接库和动态链接库的区别是一项功能配置参数。静态链接库对程序的更新、部署和发布页会带来麻烦。如果静态库libxx.lib更新了,所有使用它的应用程序都需要重新编译、发布给用户。动态链接库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入。不同的应用程序如果调用相同的库,那么在内存里只需要有一份该共享库的实例,规避了空间浪费问题。动态链接库在程序运行时才被载入,也解决了静态链接库对程序的更新、部署和发布页会带来麻烦。用户只需要更新动态链接库即可,增量更新。
28.更优地,本实施例中关于动态链接库的创建过程包括:将所述扩展视频播放器项目的工程文件的静态链接库配置参数修改为动态链接库配置参数,并编译生成动态链接库软件开发工具包。将工程文件的静态链接库配置修改为动态链接库配置,编译生成动态链接库sdk。
29.本实施例中,关于动态链接库的引入过程包括:将所述动态链接库导入视频播放器项目,并在视频播放器项目与所述动态链接库之间添加依赖关系。由于视频播放器项目在执行入口函数的指令之前,必须把该项目程序所依赖的动态库加载到内存中,然后才能开始执行。也即视频播放器项目在运行时需要共享动态链接库中定义的功能。为此,需要将创建好的所述动态链接库导入对应的项目,并添加项目运行时顺利找到所述动态链接库的基础也即依赖关系。在所述动态链接库和对应的项目程序的入口函数中均记录了依赖对象,也即建立了依赖关系。同时可以直接使用ldd命令查看所述动态链接库的依赖关系,在存在依赖关系的情况下可直接使用所述动态链接库。
30.本实施例中,将该动态链接库(例如ijkmediaframework.framework)引入ios项目
工程中使用,实现ijkplayer的音视频播放功能,同时使用ffmpeg来实现一些音视频的转码、封装格式、截取等音视频操作。这样得到的动态链接库可以在任何项目中独立运行,解决在项目中多个使用的版本冲突。同时,本实施例采用扩展ijkplayer所依赖的ffmpeg库以满足项目的需要,只需要引入一个ijkplayer就可以正常的使用ijkplayer播放器的同时,支持处理音视频的编解码、转码等功能,简单快捷有效,极大的提高研发人员的研发效率。
31.可见,本技术实施例先对视频播放器项目中与扩展功能相关的配置文件进行修改;然后为修改后的视频播放器项目增加扩展功能接口,得到扩展视频播放器项目;其中,所述扩展功能接口用于提供视频播放器的底层依赖库的扩展功能;最后基于所述扩展视频播放器项目创建对应的动态链接库并将所述动态链接库引入视频播放器项目,以得到具有所述底层依赖库的扩展功能的视频播放器。本技术实施例通过修改视频播放器项目中的配置文件并增加扩展功能接口的方式,来扩展视频播放器所依赖的底层依赖库以满足项目功能需求,在项目工程中引入动态链接库避免了额外引入底层依赖库的三方库,进而避免三方库与视频播放器中封装的底层依赖库存在版本冲突,同时节省资源空间,提高开发效率。
32.参见图2所示,本技术实施例还相应公开了一种视频播放器功能扩展装置,包括:配置修改模块11,用于对视频播放器项目中与扩展功能相关的配置文件进行修改;接口增加模块12,用于为修改后的视频播放器项目增加扩展功能接口,得到扩展视频播放器项目;其中,所述扩展功能接口用于提供视频播放器的底层依赖库的扩展功能;创建引入模块13,用于基于所述扩展视频播放器项目创建对应的动态链接库并将所述动态链接库引入视频播放器项目,以得到具有所述底层依赖库的扩展功能的视频播放器。
33.可见,本技术实施例先对视频播放器项目中与扩展功能相关的配置文件进行修改;然后为修改后的视频播放器项目增加扩展功能接口,得到扩展视频播放器项目;其中,所述扩展功能接口用于提供视频播放器的底层依赖库的扩展功能;最后基于所述扩展视频播放器项目创建对应的动态链接库并将所述动态链接库引入视频播放器项目,以得到具有所述底层依赖库的扩展功能的视频播放器。本技术实施例通过修改视频播放器项目中的配置文件并增加扩展功能接口的方式,来扩展视频播放器所依赖的底层依赖库以满足项目功能需求,在项目工程中引入动态链接库避免了额外引入底层依赖库的三方库,进而避免三方库与视频播放器中封装的底层依赖库存在版本冲突,同时节省资源空间,提高开发效率。
34.在一些具体实施例中,所述配置修改模块11,具体包括:第一修改单元,用于为视频播放器项目添加支持转码功能、支持流媒体功能、支持多种音频格式转化功能、支持解码多种音频格式功能中至少一种的配置文件;第二修改单元,用于为视频播放器项目注释掉实时传输功能、过滤功能中至少一种的配置文件;第三修改单元,用于为视频播放器项目使能视音频分离器、使能编码和解码功能中至少一种的配置文件。
35.在一些具体实施例中,所述接口增加模块12,具体用于为修改后的视频播放器项目的工程文件增加提供本地转码功能、流媒体下载功能、边下载边转码功能、音视频格式转换功能、封装音视频功能中的至少一种的所述扩展功能接口。
36.相应的,所述创建引入模块13,具体包括:创建子模块,用于将所述扩展视频播放器项目的工程文件的静态链接库配置参数修改为动态链接库配置参数,并编译生成动态链接库软件开发工具包;引入子模块,用于将所述动态链接库导入视频播放器项目,并在视频播放器项目与所述动态链接库之间添加依赖关系。
37.在一些具体实施例中,所述配置修改模块11,具体还包括:第四修改单元,用于通过脚本文件的方式对视频播放器项目中与扩展功能相关的配置文件进行修改;第一编译单元,用于对包含修改后配置文件的视频播放器项目的工程文件进行编译,以得到新的可执行脚本文件;相应的,所述创建子模块,具体包括:配置单元,用于将所述扩展视频播放器项目的工程文件的静态链接库配置参数修改为动态链接库配置参数;第二编译单元,用于对包含新的可执行脚本文件的所述扩展视频播放器项目的工程文件进行编译,以生成动态链接库软件开发工具包。
38.进一步的,本技术实施例还提供了一种电子设备。图3是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
39.图3为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的视频播放器功能扩展方法中的相关步骤。
40.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
41.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
42.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的视频播放器功能扩展方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的项目数据。
43.进一步的,本技术实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的视频播放器功能扩展方法步骤。
44.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装
置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
45.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
…”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
46.以上对本发明所提供的视频播放器功能扩展方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献