本发明涉及一种视频直播领域,具体的说,涉及了一种单机多平台直播方法和系统。
背景技术
随着直播行业的发展,直播平台也越来越多,有些主播活跃于多个平台,因此需要同时在多个平台进行直播。目前,通常采用多手机直播方案:使用专用支架和多部手机实现多个平台直播。
多手机直播方案存在以下缺点:
(1)成本高:需要采购多部手机及专用支架;
(2)设备操作调试复杂:需要逐一设置、调试好设备;
(3)效果不一致:每部手机的位置、角度不完全一样,采集的声音、视频效果有差异。主播通常难以全面兼顾每个平台的直播效果。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
技术实现要素:
本发明的目的是针对现有技术的不足,从而提供了一种单机多平台直播方法和系统。
为了实现上述目的,本发明所采用的技术方案是:一种单机多平台直播方法,包括:当应用准备打开物理音视频硬件外设时,判断物理音视频硬件外设是否已被打开,若未被打开,则通过HAL接口打开物理音视频硬件外设,否则进一步查看HAL层中是否存在一个与所述应用连接的虚拟HAL接口;
当未存在虚拟HAL接口时,创建一个虚拟HAL接口,将所述虚拟HAL接口与所述应用建立连接,然后再基于所述虚拟HAL接口创建一个虚拟音视频硬件外设,将所述虚拟音视频硬件外设与当前物理音视频硬件外设进行关联;
当存在虚拟HAL接口时,则直接基于所述虚拟HAL接口创建一个虚拟音视频硬件外设,将所述虚拟音视频硬件外设与当前物理音视频硬件外设进行关联;
当前物理音视频硬件外设采集到音视频数据后,将所述音视频数据通过所述音视频 HAL接口返回给相应的应用,同时将所述音视频数据存储至共享内存,由相关联的虚拟音视频硬件外设从共享内存中读取相应的音视频数据,并通过所述虚拟HAL接口返回给相应的应用。
本发明第二方面提供一种单机多平台直播系统,包括多个应用、一个HAL接口以及至少一个物理音视频硬件外设,
所述物理音视频硬件外设,通过所述HAL接口连接一个应用,用于采集音视频数据,并将采集到的所述音视频数据通过所述音视频 HAL接口返回给所述应用,同时将所述音视频数据存储至共享内存;
还包括虚拟HAL接口查看模块,用于所述物理音视频硬件外设通过所述HAL接口连接一个应用时,查看HAL层中是否存在一个与当前应用连接的虚拟HAL接口;
虚拟HAL接口创建模块,用于在HAL层中未存在一个与当前应用连接的虚拟HAL接口时,创建一个虚拟HAL接口,将所述虚拟HAL接口与所述应用建立连接;
虚拟音视频硬件外设创建模块,用于基于所述虚拟HAL接口创建一个虚拟音视频硬件外设,将所述虚拟音视频硬件外设与所述物理音视频硬件外设进行关联;
所述虚拟音视频硬件外设,用于从共享内存中读取相应的音视频数据,并通过所述虚拟HAL接口返回给相应的应用。
本发明提供一种移动终端,包括前述的单机多平台直播系统。
本发明提供一种计算机可读存储介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述处理器执行前述的单机多平台直播方法。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,
本发明利用基于Android Q及之后版本的multi-resume和多窗口机制,可以在前台同时运行多个应用;
本发明通过在HAL层虚拟化出来多个音视频硬件外设,每个虚拟的音视频硬件外设的数据都来自于物理音视频硬件外设采集的数据,通过共享内存的方式传递数据,最终实现多个应用同时获取同一个物理音视频硬件外设的数据,从而仅在单个终端设备操作即可,无需操控多个终端设备,减少终端设备数量,具有低成本、简单易操作、效果统一的优点。
附图说明
图1示出了本发明基于多个应用共享物理音视频硬件外设的流程图。
图2示出了本发明基于多个应用同时显示在屏幕的原理图。
图3示出了本发明实现共享物理音视频硬件外设的系统架构图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
实施例1
如图1所示,一种单机多平台直播方法,包括:当应用准备打开物理音视频硬件外设时,判断物理音视频硬件外设是否已被打开,若未被打开,则通过HAL接口打开物理音视频硬件外设,否则进一步查看HAL层中是否存在一个与所述应用连接的虚拟HAL接口;
当未存在虚拟HAL接口时,创建一个虚拟HAL接口,将所述虚拟HAL接口与所述应用建立连接,然后再基于所述虚拟HAL接口创建一个虚拟音视频硬件外设,将所述虚拟音视频硬件外设与当前物理音视频硬件外设进行关联;
当存在虚拟HAL接口时,则直接基于所述虚拟HAL接口创建一个虚拟音视频硬件外设,将所述虚拟音视频硬件外设与当前物理音视频硬件外设进行关联;
当前物理音视频硬件外设采集到音视频数据后,将所述音视频数据通过所述音视频 HAL接口返回给相应的应用,同时将所述音视频数据存储至共享内存,由相关联的虚拟音视频硬件外设从共享内存中读取相应的音视频数据,并通过所述虚拟HAL接口返回给相应的应用。
可以理解,本实施例需要确保多个应用能够同时运行,在具体实施时,如图2所示,基于Android Q版本的multi-resume和多窗口机制同时运行N个应用,N大于等于2。
进一步可以通过修改Framework,对屏幕进行固定分割,并且在初始化Activity时, 默认设置为自由窗口模式,为每个应用设置固定大小和位置。
在具体实施时,所述音视频硬件外设包括至少一个相机和/或至少一个麦克风,其中,物理相机对应连接相机HAL接口,物理麦克风对应连接麦克风HAL接口。
在具体实施时,所述音视频硬件外设包括至少一个相机和/或至少一个麦克风,其中,物理相机对应连接相机HAL接口,物理麦克风对应连接麦克风HAL接口。在使用时,当物理相机通过相机HAL接口连接应用一时,物理麦克风可以通过麦克风HAL接口连接应用一,也可以连接应用二。但是,当有多个物理相机且一个物理相机通过相机HAL接口连接应用一时,则其他物理相机也只能通过相机HAL接口连接应用一,而不能连接其他应用。
并且,在Android系统中设备服务device Service作为App与HAL层的桥梁,HAL层定义了由设备服务调用、且必须实现以确保性音视频硬件外设硬件正常运行的标准接口。因此,在将所述虚拟HAL接口通过与所述应用建立连接时,也需要通过设备服务device Service实现。
以相机为例,在Android系统中CameraService作为App与HAL层的桥梁,HAL层定义了由相机服务调用、且必须实现以确保性相机硬件正常运行的标准接口HAL接口,以及定义了虚拟HAL接口,所述HAL接口和所述虚拟HAL接口通过通过Camera Service与所述应用建立连接。
原生Android系统同一时刻某个物理音视频硬件外设只能被一个应用打开和使用。而本发明通过在HAL层虚拟化出来多个音视频硬件外设,每个虚拟的音视频硬件外设的数据都来自于物理音视频硬件外设采集的数据,通过共享内存的方式传递数据,最终实现多个应用同时获取同一个物理音视频硬件外设的数据,从而仅在单个终端设备操作即可,无需操控多个终端设备,减少终端设备数量,具有低成本、简单易操作、效果统一的优点。
可以理解,当应用关闭音视频硬件外设时,如果要关闭的是虚拟音视频硬件外设,则直接关闭;如果要关闭的是物理音视频硬件外设,则先判断所有虚拟音视频硬件外设是否已经关闭,如果已经全部关闭,则直接关闭物理音视频硬件外设;否则需要等待虚拟音视频硬件外设全部关闭,再关闭物理音视频硬件外设。
从上述可以看出,物理音视频硬件外设最先被打开,最后被关闭,从而确保虚拟音视频硬件外设能够正常运行。
实施例2
本发明第二方面提供一种单机多平台直播系统,如图3所示,包括多个应用、一个HAL接口以及至少一个物理音视频硬件外设,优选的,所述音视频硬件外设包括至少一个相机和/或至少一个麦克风;
所述物理音视频硬件外设,通过所述HAL接口连接一个应用,用于采集音视频数据,并将采集到的所述音视频数据通过所述音视频 HAL接口返回给所述应用,同时将所述音视频数据存储至共享内存;
还包括虚拟HAL接口查看模块,用于所述物理音视频硬件外设通过所述HAL接口连接一个应用时,查看HAL层中是否存在一个与当前应用连接的虚拟HAL接口;
虚拟HAL接口创建模块,用于在HAL层中未存在一个与当前应用连接的虚拟HAL接口时,创建一个虚拟HAL接口,将所述虚拟HAL接口通过Camera Service 与所述应用建立连接;
虚拟音视频硬件外设创建模块,用于基于所述虚拟HAL接口创建一个虚拟音视频硬件外设,将所述虚拟音视频硬件外设与所述物理音视频硬件外设进行关联;
所述虚拟音视频硬件外设,用于从共享内存中读取相应的音视频数据,并通过所述虚拟HAL接口返回给相应的应用。
在具体实施时,所述系统基于Android Q版本的multi-resume和多窗口机制,在移动终端前台同时运行N个应用,N大于等于2。
可以理解,所述系统还包括音视频硬件外设关闭模块,用于判断应用要关闭的音视频硬件外设是虚拟音视频硬件外设还是物理音视频硬件外设,如果要关闭的是虚拟音视频硬件外设,则直接关闭;如果要关闭的是物理音视频硬件外设,则先判断所有虚拟音视频硬件外设是否已经关闭,如果已经全部关闭,则直接关闭物理音视频硬件外设;否则需要等待虚拟音视频硬件外设全部关闭,再关闭物理音视频硬件外设。
实施例3
本发明提供一种移动终端,包括实施例2所述的单机多平台直播系统。
实施例4
本发明提供一种计算机可读存储介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述处理器执行实施例1所述的单机多平台直播方法。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
本文用于企业家、创业者技术爱好者查询,结果仅供参考。