CN116126425A - Vst插件的适配方法、装置以及网络直播系统 - Google Patents

Vst插件的适配方法、装置以及网络直播系统 Download PDF

Info

Publication number
CN116126425A
CN116126425A CN202310181116.9A CN202310181116A CN116126425A CN 116126425 A CN116126425 A CN 116126425A CN 202310181116 A CN202310181116 A CN 202310181116A CN 116126425 A CN116126425 A CN 116126425A
Authority
CN
China
Prior art keywords
window
vst
plug
main
creating
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.)
Pending
Application number
CN202310181116.9A
Other languages
English (en)
Inventor
岑焕成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Priority to CN202310181116.9A priority Critical patent/CN116126425A/zh
Publication of CN116126425A publication Critical patent/CN116126425A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种VST插件的适配方法、装置、网络直播系统、计算机设备及计算机可读存储介质;所述方法包括:在主机启动后,扫描VST插件的文件信息识别相应的版本信息;在用户打开VST插件时,根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口;当用户对所述主窗口执行第一操作时,调用所述第一窗口和第二窗口执行所述第一操作;当用户对所述第二窗口执行第二操作时,调用所述主窗口执行所述第二操作;该技术方案,主机软件能够自主地适配各种版本的VST插件,提升VST插件的使用效率,降低用户在音频处理过程复杂性,提升用户应用体验。

Description

VST插件的适配方法、装置以及网络直播系统
技术领域
本申请涉及网络直播领域,具体而言,本申请涉及一种VST插件的适配方法、装置、网络直播系统、计算机设备及计算机可读存储介质。
背景技术
随着网络直播越来越普及,主播们不仅使用美颜效果去提高画质,而且还会使用各种外置声卡和声音优化软件去提高音质效果;各种声音优化工具得到普遍推广使用,对于这些声音优化工具来说,其核心都是使用各种VST(Virtual Studio Technology,虚拟工作室技术)插件的效果去优化音质,实现各种不同的变音效果。
由于VST主机软件一般分为多个版本,VST插件的版本根据系统分为多个版本,比如,以Windows系统为例,一般会分为32和64位两种版本,使得部分VST插件必须去做两个版本去适配不同的主机软件,由此导致用户的使用成本增加,影响了VST插件的使用效率。
基于此,有必要提供一种VST插件的适配方案,以解决多个版本的VST插件情况下无法自动适配各种VST插件的技术缺陷。
发明内容
基于此,有必要针对上述至少一种技术缺陷,提供一种VST插件的适配方法、装置、网络直播系统、计算机设备及计算机可读存储介质,使得主机软件能够适配各种VST插件,提升VST插件的使用效率。
第一方面,本申请实施例提供一种VST插件的适配方法,包括以下步骤:
在主机启动后,扫描VST插件的文件信息识别相应的版本信息;
在用户打开VST插件时,根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口;
当用户对所述主窗口执行第一操作时,调用所述第一窗口和第二窗口执行所述第一操作;
当用户对所述第二窗口执行第二操作时,调用所述主窗口执行所述第二操作。
在一个实施例中,所述根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口,包括:
当所述VST插件的版本信息与所述主机为相同版本时,在主机上创建该版本信息下的主进程,并在所述主进程上建立主窗口;
在所述主进程上根据设定的偏移量在所述主窗口范围内创建第一窗口,以及通过VST标准提供的方法在所述第一窗口上创建VST插件自带的第二窗口。
在一个实施例中,所述的VST插件的适配方法,还包括:
当所述VST插件的版本信息与所述主机的版本信息为不同版本时,在主机上创建一个所属版本信息的主进程;在所述主进程建立之后,将第二窗口需要打开的参数通过进程间通信方式发送到该主进程,根据所述参数在该主进程上建立主窗口。
在一个实施例中,所述调用所述第一窗口和第二窗口执行所述第一操作,包括:
向所述第一窗口所在的第一进程发送消息,调用所述第一进程对所述第一窗口和第二窗口同步执行所述第一操作;
所述调用所述主窗口执行所述第二操作,包括:
向所述主窗口所在的主进程发送消息,调用所述主进程对所述主窗口同步执行所述第二操作。
在一个实施例中,所述在所述主进程上根据设定的偏移量在所述主窗口范围内创建第一窗口,包括:
第一窗口模式:以所述主窗口为父窗口,在所述主进程上根据设定的偏移量在所述主窗口范围内创建子窗口得到第一窗口;
或者
第二窗口模式:在所述主进程上创建偏移量为窗口自身范围偏移加上屏幕偏移的子窗口作为第一窗口。
在一个实施例中,所述的VST插件的适配方法,还包括:
在用户打开VST插件时,默认采用第一窗口模式;
启动屏幕检测程序对窗口界面进行检测,当第二窗口出现VST插件界面或者窗口无法正常显示时,启动可用检测程序对VST插件进行可用性检测;
若所述VST插件状态正常且无法正常显示时,启用第二窗口模式创建第一窗口,并将该VST插件添加到第一窗口模式的黑名单中;
其中,在后续打开VST插件时,主机读取所述黑名单,若VST插件记录在所述黑名单中,采用第二窗口模式创建第一窗口。
在一个实施例中,所述的VST插件的适配方法,还包括:
获取主机设备的屏幕缩放比;在设定所述偏移量时,根据所述缩放比动态调整所述偏移量。
在一个实施例中,所述VST插件的版本信息包括32位版本和64位版本;
所述主机的版本信息包括32位版本和64位版本;
所述第一操作或第二操作包括拖动,大小或缩放。
第二方面,本申请实施例提供一种VST插件的适配装置,包括:
版本识别模块,用于在主机启动后,扫描VST插件的文件信息识别相应的版本信息;
窗口创建模块,用于在用户打开VST插件时,根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口;
第一操作同步模块,用于当用户对所述主窗口执行第一操作时,调用所述第一窗口和第二窗口执行所述第一操作;
第二操作同步模块,用于当用户对所述第二窗口执行第二操作时,调用所述主窗口执行所述第二操作。
第三方面,本申请实施例提供一种网络直播系统,包括:主播端、观众端以及直播服务器;其中,所述主播端和观众端分别通过网络连接至所述直播服务器;
所述直播服务器,用于进行主播端与观众端之间的直播音视频的转发;
所述主播端,用于接入直播间的主播,采集主播直播的音视频流上传至直播服务器;在对音频进行处理时执行权利要求1-7任一项所述的VST插件的适配方法的步骤;
所述观众端,用于接入直播间的观众用户和播放所述音视频。
第四方面,本申请实施例提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行上述的VST插件的适配方法。
第五方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的VST插件的适配方法。
本申请的技术方案,首先主机软件通过扫描VST插件识别版本信息,在用户打开VST插件时,根据所述版本信息创建主窗口和VST插件窗口,当用户对主窗口执行操作时,主机软件调用VST插件窗口执行相同的操作,当用户对VST插件窗口执行操作时,主机软件调用主窗口执行相同的操作,进行主窗口和VST插件窗口之间的协议同步;该技术方案,主机软件能够自主地适配各种版本的VST插件,提升VST插件的使用效率;同时当用户在使用VST插件处理音频时,无需适配特定的主机软件版本类型,降低用户在音频处理过程复杂性,提升用户应用体验。
进一步的,根据不同的版本信息可以创建两种窗口模式,采用基于同一个进程下的父子窗口,同步协调效率较高,采用不同进程下的独立窗口模式,适用范围更广,便于在不同类型版本上使用。
进一步的,通过屏幕检测程序的实时监测和可用检测程序的判断,能够在VST插件出现异常时,能够自主地识别提示异常原因,同时通过黑名单,在后续再打开VST插件时,机架软件能够实现第一窗口模式到第二窗口模式的自动切换,从而可以进一步提升适配效果和使用效率。
进一步的,通过使用终端设备的适配动态支持缩放比,在用户设置屏幕为不同的DPI参数时,能够适配动态支持缩放比效果,从而可以适配各种不同DPI屏幕的VST插件的显示和使用,提升了VST插件的使用效果。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是一个示例的网络直播系统的框架示意图;
图2是一个实施例的VST插件的适配方法的流程图;
图3是一个示例的父子窗口示意图;
图4是一个示例的非父子窗口示意图;
图5是一个示例的窗口模式切换示意图;
图6是一个示例的DPI参数设置示意图;
图7是一个示例的通过进程创建窗口的示意图;
图8是一个实施例的VST插件的适配装置的结构示意图;
图9是一个示例的网络直播系统示意图;
图10是一个实施例的计算机设备的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本申请实施例中,提及的“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个对象指两个或两个以上的对象。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的信息涵盖出现在“包括”或者“包含”后面列举的信息及其等同,并不排除其他信息。在本申请实施例中提及的“和/或”,表示可以存在三种关系,字符“/”一般表示前后关联对象是一种“或”的关系。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
虚拟工作室技术(VST)是一个软件接口,集成软件音频合成器和功效插件与音频编辑和记录系统;VST通常以插件的形式存在的软件效果器技术,可以运行在当今大部分的专业音乐软件上;VST效果器覆盖了大部分音乐制作里用到的效果器,使用VST插件的音乐软件称为VST宿主机。
在网络直播中,主播在直播过程中往往会使用VST插件去提高音质和优化声音效果,这些VST插件运行在机架(主机)软件上,由于系统版本信息不同,比如Windows的32位版本和64为版本,机架软件的版本与VST插件不同类型时,一方面,VST插件必须去做两个版本去适配不同的主机软件;另一方面,在使用时也要选择相应版本信息的机架软件来匹配VST插件,影响了使用效率。
基于此,旨在解决上述技术缺陷,使得VST主机软件能够适配各种VST插件,提升VST插件的使用效率,本申请提供了一种VST插件的适配方法、装置、网络直播系统、计算机设备及计算机可读存储介质。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例的应用场景予以介绍。本申请实施例提供的方法可以应用于网络直播环境中需要使用VST插件进行优化直播音频的场景中。
请参考图1,图1是一个示例的网络直播系统的框架示意图,该系统框架可以包括主播端、直播服务器和观众端,其中,主播端和多个观众端分别与直播服务器之间通过有线网络或者无线网络建立通信连接;观众端和主播端可以通过终端设备进入直播平台;主播用户通过主播端进行直播,如进行真人才艺表演等,并且通过终端设备上运行的摄像头和麦克风采集视频数据和音频数据,利用直播端的机架软件和VST插件对音频数据进行优化音质处理,提升音效;观众用户通过观众端选择进入某一虚拟直播间观看主播用户进行直播。在本申请中,主播端和观众端使用的终端设备可以为计算机类设备,如智能手机、平板电脑、台式电脑或笔记本电脑等,对此并不做限定,也可以是应用程序的软件模块。直播服务器包括用于为计算机设备提供后台服务的后台服务器,可以用独立服务器或多个服务器组成的服务器集群来实现。
基于上述网络直播系统的框架,本申请提供一种VST插件的适配方法,应用于VST宿主机上,如图2所示,图2是一个实施例的VST插件的适配方法的流程图,该方法可以包括以下步骤:
S10,在主机启动后,扫描VST插件的文件信息识别相应的版本信息。
此步骤中,主机软件在启动之后,去扫描VST插件的文件信息,通过文件信息识别出VST插件相应的版本信息。
例如,机架软件启动后扫描VST插件信息,根据VST插件文件头部设定位置的数据可以判断VST插件是32位(值为0x014c)插件还是64位(值为0x8664)系统版本的插件,同时,根据文件后缀名还可以判断VST插件的版本类型,例如,VST2的后缀名是.dll,VST3后缀名为.vst3。
S20,在用户打开VST插件时,根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口。
此步骤中,主要是在使用VST插件时的窗口配置过程,根据前面识别的版本信息,在主机界面上创建主窗口,然后在主窗口范围内创建第一窗口以及在第一窗口上创建VST插件的第二窗口(即VST插件窗口),其中,第二窗口是通过VST标准提供的方法创建一个VST自带的窗口。
通过创建的主窗口以及第一窗口、第二窗口,可以实现主窗口到第一窗口,第二窗口到第一窗口之间的同步协议操作信息,从而可以在VST插件与机架软件不同版本时也可以适配使用。
在一个实施例中,在根据不同版本信息创建窗口时,可以包括如下两种情况:
(1)当所述VST插件的版本信息与所述主机为相同版本时,在主机上创建该版本信息下的主进程,并在所述主进程上建立主窗口;在所述主进程上根据设定的偏移量在所述主窗口范围内创建第一窗口,以及通过VST标准提供的方法在所述第一窗口上创建VST插件自带的第二窗口。
例如,机架软件与VST插件都是32位时,可以以偏移量为(左0,上100)的win32子窗口作为第一窗口,以偏移量为(左0,上100)创建一个VST插件自带的win32子窗口作为第二窗口。
(2)当所述VST插件的版本信息与所述主机的版本信息为不同版本时,在主机上创建一个所属版本信息的主进程;在所述主进程建立之后,将第二窗口需要打开的参数通过进程间通信方式(Inter-Process Communication,简称IPC)发送到该主进程,根据所述参数在该主进程上建立主窗口。
然后再在所述主进程上根据设定的偏移量在所述主窗口范围内创建第一窗口,以及通过VST标准提供的方法在所述第一窗口上创建VST插件自带的第二窗口。
例如,机架软件是32位时,以VST插件是64位为例。机架软件创建一个64位的进程,在进程创建后,把VST插件窗口需要打开的参数通过IPC发送到该64位进程,然后再采用第(1)点中的方式创建窗口。
示例性的,考虑到VST插件一般是由第三方制作,对于创建的窗口可以划分为两种窗口模式,具体如下:
第一窗口模式:
参考图3所示,图3是一个示例的父子窗口示意图,以所述主窗口为父窗口,在所述主进程上根据设定的偏移量在所述主窗口范围内创建子窗口得到第一窗口;然后再通过VST标准提供的方法在第一窗口上创建VST插件自带的第二窗口。在该窗口模式下,主窗口与第一窗口、第二窗口是基于同一个进程上创建的父子窗口。
第二窗口模式:
参考图4所示,图4是一个示例的非父子窗口示意图,在所述主进程上创建偏移量为窗口自身范围偏移加上屏幕偏移的子窗口作为第一窗口;然后再通过VST标准提供的方法在第一窗口上创建VST插件自带的第二窗口。在该窗口模式下,主窗口与第一窗口、第二窗口是基于不同进程上创建的相互独立窗口。
上述实施例中的两种窗口模式中,第一窗口模式是基于同一个进程下的父子窗口,同步协调效率较高,所以默认优先第一窗口模式,同时为了避免第三方的VST插件出现无法匹配机架软件的情况,第二窗口模式采用不同进程下的独立窗口,适用范围更广,便于在不同类型版本上使用。
S30,当用户对所述主窗口执行第一操作时,调用所述第一窗口和第二窗口执行所述第一操作。
此步骤中,用户可以对主窗口进行直接的拖动,大小,缩放等操作,此时主机调用第一窗口和第二窗口执行相同的操作,从而实现了窗口同步变化的效果。
作为实施例,在同步各个窗口的操作时,主机可以向所述第一窗口所在的第一进程发送消息,调用所述第一进程对所述第一窗口和第二窗口同步执行所述第一操作。
对应于前述实施例中所创建的窗口的不同模式,在进行窗口同步操作过程中,当用户执行操作改变主窗口时,发送消息到第一窗口所在进程,由于第一窗口模式下,主窗口与第一窗口、第二窗口是同进程的父子窗口,因此直接调用;在第二窗口模式下,不同进程通过IPC发送信息去调用第一窗口和第二窗口(第一窗口和第二窗口属于同一进程)同步执行对应操作改变窗口。
S40,当用户对所述第二窗口执行第二操作时,调用所述主窗口执行所述第二操作。
此步骤中,用户可以对VST插件的第一窗口进行直接的拖动,大小,缩放等操作,此时主机调用主窗口执行相同的操作。
作为实施例,在同步各个窗口的操作时,主机向所述主窗口所在的主进程发送消息,调用所述主进程对所述主窗口同步执行所述第二操作。
对应于前述实施例中所创建的窗口的不同模式,在进行窗口同步操作过程中,第一窗口模式下,第一窗口、第二窗口与主窗口是同进程的父子窗口,因此直接调用;在第二窗口模式下,不同进程通过IPC发送信息去调用主窗口执行对应操作改变窗口。
综合上述实施例的技术方案,可以实现主窗口和VST插件窗口之间的协议同步,从而使得VST主机软件能够自主地适配各种版本的VST插件,提升VST插件的使用效率;进一步根据不同的版本信息可以创建两种窗口模式,采用基于同一个进程下的父子窗口,同步协调效率较高,采用不同进程下的独立窗口模式,适用范围更广,便于在不同类型版本上使用;基于本申请的技术方案,当用户在使用VST插件处理音频时,无需适配特定的主机软件版本类型,降低用户在音频处理过程复杂性,提升用户应用体验。
为了更加清晰本申请的技术方案,下面阐述更多实施例。
在一个实施例中,为了实现第一窗口模式与第二窗口模式之间的准确切换,使得机架软件能够自主匹配所打开的VST插件,本申请还提供了如下切换方法实施例,其中切换流程可以包括如下:
a、在用户打开VST插件时,默认采用第一窗口模式。
b、启动屏幕检测程序对窗口界面进行检测,当第二窗口出现VST插件界面或者窗口无法正常显示时,启动可用检测程序对VST插件进行可用性检测。
c、若所述VST插件状态正常且无法正常显示时,启用第二窗口模式创建第一窗口,并将该VST插件添加到第一窗口模式的黑名单中。
具体的,参考图5,图5是一个示例的窗口模式切换示意图,机架软件启动一个屏幕检测程序,当遇到VST插件界面打不开或者VST界面上的部分窗口(如出现窗口闪烁)打不开等异常时,通过屏幕检测程序进行识别,实时抓取打开VST插件后界面的差异进行对比分析,判断VST界面是否正常;然后启动可用检测程序对VST插件进行可用性判断,打开VST插件的文件,进行预加载,如果异常原因是VST插件非正式版(未注册)会判为不可用,则弹窗提示提醒用户先注册VST插件然后再使用;另外,如果加载过程中遇到异常或者崩溃会重新启动进行尝试加载,多次都失败情况下,判断VST插件为不可用;如果异常原因是VST插件是正常的,而异常是显示问题导致的,则机架软件将VST插件记录到第一窗口模式的黑名单,启用第二窗口模式;在后续打开VST插件时,主机读取到黑名单,若VST插件记录在黑名单中,采用第二窗口模式创建第一窗口和第二窗口。
上述实施例的技术方案,通过屏幕检测程序的实时监测和可用检测程序的判断,能够在VST插件出现异常时,能够自主地识别提示异常原因,同时通过黑名单,在后续再打开VST插件时,机架软件能够实现第一窗口模式到第二窗口模式的自动切换,从而可以进一步提升适配效果和使用效率。
在一个实施例中,考虑到用户在使用终端设备时,会设置不同的屏幕缩放比(DPI),因此,为了实现窗口在不同屏幕缩放比下的动态调整,本申请实施例的技术方案,还可以获取主机设备的屏幕缩放比;在设定所述偏移量时,根据所述缩放比动态调整所述偏移量。
例如,参考图6所示,图6是一个示例的DPI参数设置示意图,在高分屏电脑下,一般用户都会设置屏幕DPI大于100%,则机架软件的32位进程与64位的启动进程去适配动态支持缩放比;此时,主窗口与第一窗口之间的距离需要获取DPI,假设此时DPI为150%,那么原来偏移量为(左0,上100)的子窗口的偏移量会变成(左0,上100*1.25)。
上述实施例的技术方案,通过使用终端设备的适配动态支持缩放比,在用户设置屏幕为不同的DPI参数时,能够适配动态支持缩放比效果,从而可以适配各种不同DPI屏幕的VST插件的显示和使用,提升了VST插件的使用效果。
参考图7,图7是一个示例的通过进程创建窗口的示意图,基于上述实施例提供的技术方案,下面结合第一窗口模式和第二窗口模式提供两个示例。
在第一窗口模式下,首先机架软件启动后扫描VST插件信息,根据VST插件文件头部数据判断是32位(值为0x014c)插件还是64位(值为0x8664)插件;当用户打开VST插件时,以32位机架软件为例,先创建一个32位的CEF(Chromium Embedded Framework,一个开源软件框架,用于在另一个应用程序中嵌入Chromium web浏览器)窗口作为主窗口,然后比对VST插件的版本是否与机架软件的版本位数相同。
①、如果位数相同,即VST插件为32位,则创建一个以主窗口为父窗口,以偏移量为(左0,上100)创建一个win32子窗口作为第一窗口,然后创建一个VST插件自带的第二窗口,即VST插件窗口。
②、如果位数不同,即VST插件为64位,则机架软件创建一个64位的进程,然后把VST插件窗口需要打开的参数通过IPC发到送至64位的进程,再利用①提供的方法创建第一窗口和第二窗口。
当用户执行改变主窗口大小操作时,机架软件发送消息到第一窗口所在进程,如果是①情况,主窗口、第一窗口和第二窗口是同进程,直接调用;如果是②情况,主窗口、第一窗口和第二窗口是不同进程,通过IPC发送消息去调用子窗口(第一窗口和第二窗口)执行对应的改变大小操作。
当用户在使用VST插件窗口(第二窗口)时,如果改变窗口大小,机架软件发送消息发送到主窗口,如果是①情况,主窗口、第一窗口和第二窗口是同进程,直接调用;如果是②情况,主窗口、第一窗口和第二窗口是不同进程,通过IPC发送消息去调用父窗口(主窗口)执行对应的改变大小操作。
在第二窗口模式下,假设机架软件是32位,比对VST插件的版本是否与机架软件的版本位数相同。
③、如果位数相同,即VST插件为32位,则创建一个偏移量为窗口本身偏移加上屏幕偏移(例如左0+屏幕偏移左50,上100+屏幕偏移高)的win32子窗口作为第一窗口,然后创建一个VST插件自带的第二窗口,即VST插件窗口。
④、如果位数不同,即VST插件为64位,则机架软件创建一个64位的进程,然后把VST插件窗口需要打开的参数通过IPC发到到64位的进程,再利用③提供的方法创建第一窗口和第二窗口。
当用户拖动主窗口时,由于主窗口与子窗口是非父子窗口,因此机架软件可以发送窗口位置变化消息调用第一窗口和第二窗口同步移动,(如果是③情况,直接发送,如果是④情况,通过IPC发送,实现子窗口跟随主窗口同步移动;同理,当用户拖动VST插件窗口时,也可以发送消息调用主窗口,实现主窗口跟随子窗口同步移动。
综上实施例的技术方案,可以完美适配各种操作系统、各个厂商、各种终端设备的屏幕显下面的VST显示和使用,无需适配特定的主机软件版本类型,降低用户在音频处理过程复杂性,提升用户应用体验,。
VST主机软件能够自主地适配各种版本的VST插件,提升VST插件的使用效率;同时当用户在使用VST插件处理音频时,可以根据需求选择同步协调效率较高或者适用范围更广,便于在不同类型版本上使用的不同窗口模式;实现不同窗口模式的自动切换,提升适配效果和使用效率。
下面对VST插件的适配装置的相关实施例进行详细阐述。
参考图8所示,图8是一个实施例的VST插件的适配装置的结构示意图,可以包括:
版本识别模块10,用于在主机启动后,扫描VST插件的文件信息识别相应的版本信息;
窗口创建模块20,用于在用户打开VST插件时,根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口;
第一操作同步模块30,用于当用户对所述主窗口执行第一操作时,调用所述第一窗口和第二窗口执行所述第一操作;
第二操作同步模块40,用于当用户对所述第二窗口执行第二操作时,调用所述主窗口执行所述第二操作。
本实施例的VST插件的适配装置可执行本申请的实施例所提供的一种VST插件的适配方法,其实现原理相类似,本申请各实施例中的VST插件的适配装置中的各模块所执行的动作是与本申请各实施例中的VST插件的适配方法中的步骤相对应的,对于VST插件的适配装置的各模块的详细功能描述具体可以参见前文中所示的对应的VST插件的适配方法中的描述,此处不再赘述。
下面阐述网络直播系统的实施例。
本申请实施例提供的网络直播系统,参考图9所示,图9是一个示例的网络直播系统示意图,包括:主播端、多个观众端和直播服务器;其中主播端和观众端分别通过网络连接至直播服务器。其中,直播服务器用于进行主播端与观众端之间的直播视频转发;主播端用于接入直播间的主播,采集主播直播的音视频流上传至直播服务器;在对音频进行处理时利用VST插件对音频数据进行优化处理;观众端用于接入直播间的观众用户并观看直播内容。
如图9所示的网络直播系统中,假设不同的观众用户A、B、C……访问直播间观看主播的直播,主播在机架软件上打开VST插件来对音频进行优化,提高音质效果;此时主播可以在不同版本的机架软件和VST插件情况下,直接打开VST插件进行使用,机架软件可以采用本申请提供的技术方案,自动适配机架软件和VST插件的版本类型,从而提升VST插件的使用效率,提升主播用户的应用体验。
下面阐述计算机设备及计算机可读存储介质的实施例。
本申请提供一种计算机设备的技术方案,用以实现VST插件的适配方法相关功能该计算机设备,其包括:
一个或多个处理器;存储器;一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于任意实施例的VST插件的适配方法。
如图10所示,图10是一个实施例的计算机设备的框图,该计算机设备可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。计算机设备可以包括以下一个或多个组件:处理组件1002,存储器1004,电源组件1006,多媒体组件1008,音频组件1010,输入/输出(I/O)接口1012,传感器组件1014,以及通信组件1016。
处理组件1002通常控制计算机设备的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。
存储器1004被配置为存储各种类型的数据以支持在计算机设备的操作。如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1006为计算机设备的各种组件提供电力。
多媒体组件1008包括在计算机设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。在一些实施例中,多媒体组件1008包括一个前置摄像头和/或后置摄像头。
音频组件1010被配置为输出和/或输入音频信号。
输入/输出接口1012为处理组件1002和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1014包括一个或多个传感器,用于为计算机设备提供各个方面的状态评估。传感器组件1014可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。
通信组件1016被配置为便于计算机设备和其他设备之间有线或无线方式的通信。计算机设备可以接入基于通信标准的无线网络,如Wi-Fi,运营商网络(如2G、3G、4G或5G),或它们的组合。
本申请提供的计算机可读存储介质,用以实现VST插件的适配方法相关功能,该计算机可读存储介质,存储介质存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行任意实施例的VST插件的适配方法。在示例性实施例中,计算机可读存储介质可以是一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备,如计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行时实现任意实施例的VST插件的适配方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (12)

1.一种VST插件的适配方法,其特征在于,包括以下步骤:
在主机启动后,扫描VST插件的文件信息识别相应的版本信息;
在用户打开VST插件时,根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口;
当用户对所述主窗口执行第一操作时,调用所述第一窗口和第二窗口执行所述第一操作;
当用户对所述第二窗口执行第二操作时,调用所述主窗口执行所述第二操作。
2.根据权利要求1所述的VST插件的适配方法,其特征在于,所述根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口,包括:
当所述VST插件的版本信息与所述主机为相同版本时,在主机上创建该版本信息下的主进程,并在所述主进程上建立主窗口;
在所述主进程上根据设定的偏移量在所述主窗口范围内创建第一窗口,以及通过VST标准提供的方法在所述第一窗口上创建VST插件自带的第二窗口。
3.根据权利要求2所述的VST插件的适配方法,其特征在于,还包括:
当所述VST插件的版本信息与所述主机的版本信息为不同版本时,在主机上创建一个所属版本信息的主进程;在所述主进程建立之后,将第二窗口需要打开的参数通过进程间通信方式发送到该主进程,根据所述参数在该主进程上建立主窗口。
4.根据权利要求3所述的VST插件的适配方法,其特征在于,所述调用所述第一窗口和第二窗口执行所述第一操作,包括:
向所述第一窗口所在的第一进程发送消息,调用所述第一进程对所述第一窗口和第二窗口同步执行所述第一操作;
所述调用所述主窗口执行所述第二操作,包括:
向所述主窗口所在的主进程发送消息,调用所述主进程对所述主窗口同步执行所述第二操作。
5.根据权利要求2所述的VST插件的适配方法,其特征在于,所述在所述主进程上根据设定的偏移量在所述主窗口范围内创建第一窗口,包括:
第一窗口模式:以所述主窗口为父窗口,在所述主进程上根据设定的偏移量在所述主窗口范围内创建子窗口得到第一窗口;
或者
第二窗口模式:在所述主进程上创建偏移量为窗口自身范围偏移加上屏幕偏移的子窗口作为第一窗口。
6.根据权利要求5所述的VST插件的适配方法,其特征在于,还包括:
在用户打开VST插件时,默认采用第一窗口模式;
启动屏幕检测程序对窗口界面进行检测,当第二窗口出现VST插件界面或者窗口无法正常显示时,启动可用检测程序对VST插件进行可用性检测;
若所述VST插件状态正常且无法正常显示时,启用第二窗口模式创建第一窗口,并将该VST插件添加到第一窗口模式的黑名单中;
其中,在后续打开VST插件时,主机读取所述黑名单,若VST插件记录在所述黑名单中,采用第二窗口模式创建第一窗口。
7.根据权利要求2所述的VST插件的适配方法,其特征在于,还包括:
获取主机设备的屏幕缩放比;在设定所述偏移量时,根据所述缩放比动态调整所述偏移量。
8.根据权利要求1所述的VST插件的适配方法,其特征在于,所述VST插件的版本信息包括32位版本和64位版本;
所述主机的版本信息包括32位版本和64位版本;
所述第一操作或第二操作包括拖动,大小或缩放。
9.一种VST插件的适配装置,其特征在于,包括:
版本识别模块,用于在主机启动后,扫描VST插件的文件信息识别相应的版本信息;
窗口创建模块,用于在用户打开VST插件时,根据所述版本信息在主机界面上创建主窗口,在所述主窗口范围内创建第一窗口,以及在所述第一窗口上创建VST插件的第二窗口;
第一操作同步模块,用于当用户对所述主窗口执行第一操作时,调用所述第一窗口和第二窗口执行所述第一操作;
第二操作同步模块,用于当用户对所述第二窗口执行第二操作时,调用所述主窗口执行所述第二操作。
10.一种网络直播系统,其特征在于,包括:主播端、观众端以及直播服务器;其中,所述主播端和观众端分别通过网络连接至所述直播服务器;
所述直播服务器,用于进行主播端与观众端之间的直播音视频的转发;
所述主播端,用于接入直播间的主播,采集主播直播的音视频流上传至直播服务器;在对音频进行处理时执行权利要求1-7任一项所述的VST插件的适配方法的步骤;
所述观众端,用于接入直播间的观众用户和播放所述音视频。
11.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1至8任一项所述的VST插件的适配方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的VST插件的适配方法。
CN202310181116.9A 2023-03-01 2023-03-01 Vst插件的适配方法、装置以及网络直播系统 Pending CN116126425A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310181116.9A CN116126425A (zh) 2023-03-01 2023-03-01 Vst插件的适配方法、装置以及网络直播系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310181116.9A CN116126425A (zh) 2023-03-01 2023-03-01 Vst插件的适配方法、装置以及网络直播系统

Publications (1)

Publication Number Publication Date
CN116126425A true CN116126425A (zh) 2023-05-16

Family

ID=86297510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310181116.9A Pending CN116126425A (zh) 2023-03-01 2023-03-01 Vst插件的适配方法、装置以及网络直播系统

Country Status (1)

Country Link
CN (1) CN116126425A (zh)

Similar Documents

Publication Publication Date Title
KR101912602B1 (ko) 모바일단말기, 디스플레이장치 및 그 제어방법
CN111031368B (zh) 多媒体播放方法、装置、设备及存储介质
CN112114765A (zh) 投屏方法、装置及存储介质
CN113365153B (zh) 数据分享方法、装置、存储介质及电子设备
JP2011530902A (ja) 通話中における情報の共有
CN112134788B (zh) 事件处理方法、装置、存储介质、移动终端及电脑
CN111526232B (zh) 一种基于双屏终端的摄像头控制方法及双屏终端
CN114071243A (zh) 视频播放方法及装置、电子设备和存储介质
CN112153396A (zh) 页面展示方法、装置、系统和存储介质
CN114500821B (zh) 拍照方法及装置、终端及存储介质
CN111953852B (zh) 通话记录生成方法、装置、终端及存储介质
CN116126425A (zh) Vst插件的适配方法、装置以及网络直播系统
CN109491655A (zh) 一种输入事件处理方法及装置
US20210377454A1 (en) Capturing method and device
CN113891135B (zh) 一种多媒体数据播放方法、装置、电子设备及存储介质
CN115291823A (zh) 多屏协同显示方法、装置及终端设备
CN107070816A (zh) 应用的识别方法、装置和移动终端
CN113542711A (zh) 一种图像显示方法和终端
CN114860370B (zh) 一种显示设备、服务器及软件开发工具包切换方法
CN114339112B (zh) 视频通话的方法、电子设备及系统
WO2019056367A1 (zh) 相机水印的编辑方法和装置
EP4310646A1 (en) Device discovery method and system and electronic device
CN116709004B (zh) 一种图像处理方法和电子设备
WO2024093512A1 (zh) 对象处理方法、装置、电子设备以及可读存储介质
CN117369615A (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