HTML网页播放音频流的方法与云手机服务器
技术领域
本发明涉及网络技术领域,特别涉及一种HTML网页播放音频流的方法与云手机服务器。
背景技术
云手机,是一个基于云计算强大虚拟应用和移动互联网的智能手机应用云平台。基于云计算在大规模计算、强大的存储能力、虚拟化应用等方面突出的优势,云平台为智能手机用户提供多元化、全方位的虚拟手机应用和服务,全面支持各种手机应用程序的展示、下载、应用与管理服务,并卓越实现全天候云端智能托管应用,让用户脱离移动终端的状态下,也能将各种应用程序托管到到云端,保持全天候在线状态,全面实现智能手机应用虚拟化。
当前云手机中想要实现HTML网页实时播放音频流的时候,经常会在音频转换的过程中遭遇爆音,给用户造成不好的体验。
发明内容
本发明的实施方式旨在至少解决现有技术中存在的技术问题之一。为此,本发明的实施方式需要提供一种HTML网页播放音频流的方法与云手机服务器。
本发明实施方式的HTML网页播放音频流的方法,其特征在于,包括:
步骤1,在HTML网页的页面创建包括主音频和次音频在内的两个音频节点;
步骤2,通过网页实时接收云手机后台传输的音频数据,并创建一个包括计数器长度为m的数组来存储接收的每帧音频数据;其中,每接收一帧音频数据则m累加数字1;
步骤3,设置表示符合流畅播放要求的音频片段长度k值;其中,k长度音频帧数组转换的音频片段由主音频播放;
步骤4,设置用于弥补爆音的音频片段长度y值;其中,y长度音频帧数组转换的音频片段由次音频播放;
步骤5,确定m是k的倍数,则将m长度音频帧数组转换的音频片段由主音频播放;
步骤6,确定m大于k且m+y*a是k的倍数,则在主音频播放结束的时间点之前y*a长度帧代表的时间播放次音频,并在次音频播放的同时降低主音频音量直至主音频播放结束;其中,a表示预设的系数。
一种实施方式中,步骤5包括:确定m是k的倍数,则对m长度音频帧数组,每存储k长度的音频帧就转换为blob对象,再转换成blob对应的url对象,然后用主音频的src指向该url实现主音频的播放。
一种实施方式中,其特征在于,步骤6包括:确定m大于k且m+y*a是k的倍数,则将y长度的音频帧转换为blob对象,然后在主音频播放结束的时间点之前y*a长度帧代表的时间内由次音频播放,并在次音频播放的同时降低主音频音量直至主音频播放结束;其中,a表示预设的系数。
一种实施方式中,步骤6包括:确定m大于k且m+y*a是k的倍数,则将y长度的音频帧转换为blob对象,然后在主音频播放结束的时间点之前y*a长度帧代表的时间内由次音频播放,并在次音频播放的同时降低主音频音量直至主音频播放结束,在主音频播放结束后恢复主音频的音量;其中,a表示预设的系数。
一种实施方式中,将系数a按照a<1进行设置。
本发明实施方式还提出一种云手机服务器,其特征在于,包括:
创建模块,用于在HTML网页的页面创建包括主音频和次音频在内的两个音频节点;
接收模块,用于通过网页实时接收云手机后台传输的音频数据,并创建一个包括计数器长度为m的数组来存储接收的每帧音频数据;其中,每接收一帧音频数据则m累加数字1;
第一设置模块,用于设置表示符合流畅播放要求的音频片段长度k值;其中,k长度音频帧数组转换的音频片段由主音频播放;
第二设置模块,用于设置用于弥补爆音的音频片段长度y值;其中,y长度音频帧数组转换的音频片段由次音频播放;
第一播放模块,用于确定m是k的倍数,则将m长度音频帧数组转换的音频片段由主音频播放;
第二播放模块,用于确定m大于k且m+y*a是k的倍数,则在主音频播放结束的时间点之前y*a长度帧代表的时间播放次音频,并在次音频播放的同时降低主音频音量直至主音频播放结束;其中,a表示预设的系数。
一种实施方式中,第一播放模块具体用于确定m是k的倍数,则对m长度音频帧数组,每存储k长度的音频帧就转换为blob对象,再转换成blob对应的url对象,然后用主音频的src指向该url实现主音频的播放。
一种实施方式中,第一播放模块具体用于确定m大于k且m+y*a是k的倍数,则将y长度的音频帧转换为blob对象,然后在主音频播放结束的时间点之前y*a长度帧代表的时间内由次音频播放,并在次音频播放的同时降低主音频音量直至主音频播放结束;其中,a表示预设的系数。
一种实施方式中,第一播放模块具体用于确定m大于k且m+y*a是k的倍数,则将y长度的音频帧转换为blob对象,然后在主音频播放结束的时间点之前y*a长度帧代表的时间内由次音频播放,并在次音频播放的同时降低主音频音量直至主音频播放结束,在主音频播放结束后恢复主音频的音量;其中,a表示预设的系数。
一种实施方式中,将系数a按照a<1进行设置。
本发明实施方式的HTML网页播放音频流的方法与云手机服务器,通过设置不同的音频节点,然后在主音频播放结束前采用次音频来弥补爆音,解决现有技术实时播放音频流造成的爆音问题,给用户带来更好的用户体验。
本发明的附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的实施方式的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1是本发明实施方式的HTML网页播放音频流的方法的流程示意图;
图2是本发明实施方式的云手机服务器的组成示意图。
具体实施方式
下面详细描述本发明的实施方式,实施方式的示例在附图中示出,其中相同或类似的标号自始至终表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅可用于解释本发明的实施方式,而不能理解为对本发明的实施方式的限制。
请参阅图1,本发明实施方式的HTML网页播放音频流的方法,其特征在于,包括:
步骤1,在HTML网页的页面创建包括主音频和次音频在内的两个音频节点。
步骤2,通过网页实时接收云手机后台传输的音频数据,并创建一个包括计数器长度为m的数组来存储接收的每帧音频数据;其中,每接收一帧音频数据则m累加数字1。
步骤3,设置表示符合流畅播放要求的音频片段长度k值;其中,k长度音频帧数组转换的音频片段由主音频播放。
步骤4,设置用于弥补爆音的音频片段长度y值;其中,y长度音频帧数组转换的音频片段由次音频播放。
步骤5,确定m是k的倍数,则将m长度音频帧数组转换的音频片段由主音频播放。
步骤6,确定m大于k且m+y*a是k的倍数,则在主音频播放结束的时间点之前y*a长度帧代表的时间来进行次音频的播放,并在次音频播放的同时降低主音频音量直至主音频播放结束;其中,a表示预设的系数。
请参阅图2,本发明实施方式的云手机服务器,包括:
创建模块,用于在HTML网页的页面创建包括主音频和次音频在内的两个音频节点。
接收模块,用于通过网页实时接收云手机后台传输的音频数据,并创建一个包括计数器长度为m的数组来存储接收的每帧音频数据;其中,每接收一帧音频数据则m累加数字1。
第一设置模块,用于设置表示符合流畅播放要求的音频片段长度k值;其中,k长度音频帧数组转换的音频片段由主音频播放。
第二设置模块,用于设置用于弥补爆音的音频片段长度y值;其中,y长度音频帧数组转换的音频片段由次音频播放。
第一播放模块,用于确定m是k的倍数,则将m长度音频帧数组转换的音频片段由主音频播放。
第二播放模块,用于确定m大于k且m+y*a是k的倍数,则在主音频播放结束的时间点之前y*a长度帧代表的时间播放次音频,并在次音频播放的同时降低主音频音量直至主音频播放结束;其中,a表示预设的系数。
在该实施方式中,HTML网页播放音频流的方法以云手机服务器作为步骤的执行对象,或者以服务器内的各个模块分别作为步骤的执行对象。具体地,步骤1以创建模块作为步骤的执行对象,步骤2以接收模块作为步骤的执行对象,步骤3以第一设置模块作为步骤的执行对象,步骤4以第二设置模块作为步骤的执行对象,步骤5以第一播放模块作为步骤的执行对象,步骤6以第二播放模块作为步骤的执行对象。
步骤1中,创建模块在HTML网页的页面创建两个音频节点,一个是主音频,另一个是次音频。
步骤2中,接收模块通过网页实时接收云手机后台传输的音频数据,创建一个数组用来存储接收的每帧音频数据。数组中,初始化一个长度为m的计数器,每接收一帧音频数据则m=m+1,即m以累加数字1的形式实现计数功能。
步骤3中,第一设置模块设置表示符合流畅播放要求的音频片段长度k值。该k值越大,第一帧声音出现的延迟时间越长,但是k值越小,声音播放会出现不流畅,以致于播放的音频片段替换为新的音频片段时出现明显爆音。设置好k值后,k长度音频帧数组转换的音频片段由主音频播放。
步骤4中,第二设置模块设置用于弥补爆音的音频片段长度y值。这段音频时间通常比较短,播放时间是发生在主音频播放即将结束的时候。即y长度音频帧数组转换的音频片段由次音频播放。
步骤5中,第一播放模块确定m是k的倍数,则将m长度音频帧数组转换的音频片段由主音频播放。即对m长度音频帧数组,每存储k长度的音频帧就转换为blob对象,再转换成blob对应的url对象,然后用主音频的src指向该url实现主音频的播放。
步骤6中,第二播放模块确定m大于k且m+y*a是k的倍数,则在主音频播放结束的时间点之前y*a长度帧代表的时间播放次音频,并在次音频播放的同时降低主音频音量直至主音频播放结束。即当接收的音频帧长度超过1倍以上k长度后才会触发次音频的播放,原因是当主音频片段播放结束时这个时间点,会因为src的短暂替换有爆音,所以此时由相邻的音频帧,例如次音频播放的y长度的音频片段,来代替播放。
在HTML网页中,src是指向目标的来源,src通常用作"拿取"。
例如<img src="000.TIF"/>就是src拿取000.jpg这个图片作为这个img的源档案,可以理解为<img>显示000.jpg的意思。
具体地,步骤6中,第二播放模块确定m大于k且m+y*a是k的倍数,则将y长度的音频帧转换为blob对象,然后在主音频播放结束的时间点之前y*a长度帧代表的时间内由次音频播放,并在次音频播放的同时降低主音频音量直至主音频播放结束。即次音频播放音频片段的时间是在主音频播放结束的时间点之前y*a长度帧代表的时间,这个长度由y*a来表示。系数a是匹配帧率和当前k值一个小数,按a<1进行设置,表示次音频在主音频即将播放结束之前的一小段时间开始播放,本实施例中,a的取值可以是a=1/2,即y/2。当然,这个长度也可以不是y/2,只需要将次音频播放的时间设置为在主音频播放结束前的一小段时间。
进一步地,步骤6包括:第二播放模块在次音频播放的同时降低主音频音量直至主音频播放结束,在主音频播放结束后恢复主音频的音量。即在次音频播放的同时,主音频音量逐渐降低,播放结束则将主音频的音量恢复。避免下一次主音频播放的时候音频片段的音量没有恢复。
本发明实施方式的HTML网页播放音频流的方法与云手机服务器,通过设置不同的音频节点,然后在主音频播放结束前采用次音频来弥补爆音,解决现有技术实时播放音频流造成的爆音问题,给用户带来更好的用户体验。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理模块的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的实施方式的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明的各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。