音频数据或视频数据的存储方法、存储系统及计算机设备与流程

文档序号:16475474发布日期:2019-01-02 23:33阅读:611来源:国知局
音频数据或视频数据的存储方法、存储系统及计算机设备与流程

本发明涉及数据存储技术领域,具体而言,涉及一种音频数据或视频数据的存储方法、存储系统、计算机设备、计算机可读存储介质及智能设备。



背景技术:

用户在使用行车记录仪时,要求行车记录仪要具有连续录音、录像的功能,并且需要以固定时间(如30秒)为周期将录音、录像数据分为一个个小文件进行存储,进而方便文件的选择上传。现有技术中,androidapp常用调用mediarcorder实现录制音频视频的功能,但在其每次启动后只能进行一次文件存储,如果希望将录音、录像数据存储至另一个文件则需要停止并重新启动mediarecorder。

在相关技术中,是通过上述每次停止再重新启动mediarecorder向新的文件中存储数据而达到将录音、录像分文件存储目的的。而mediarecorder每次停止再重新启动都会存在几秒的延迟时间,导致这段延迟时间范围内的录音、录像无法被录取,即每两个录音或录像文件间存在漏秒情况,另外存储至各个文件的录音、录像也并非为固定的音频或视频格式,后续还需要再进行固定音频或视频格式的转化的工作。因此,如何将录音或录像完成地并以固定的音频或视频格式存储至各个文件中成为亟待解决的问题。



技术实现要素:

本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。

为此,本发明的一个目的在于提出了一种音频数据或视频数据的存储方法。

本发明的另一个目的在于提出了一种音频数据或视频数据的存储系统。

本发明的再一个目的在于提出了一种计算机设备。

本发明的又一个目的在于提出了一种计算机可读存储介质。

本发明的又一个目的在于提出了一种智能设备。

有鉴于此,根据本发明的一个目的,提出了一种音频数据或视频数据的存储方法,包括:建立数据管道;向数据管道内录入音频数据或视频数据;读取音频数据或视频数据;将音频数据或视频数据存储至存储文件。

本发明提供的音频数据或视频数据的存储方法,文件流是指同一时刻只可以写或者读的文件;管道是指通过创建两个文件句柄称为管道的两端,其中一端可以读,称为a端,另外一端可以写,称为b端。新建android录音或录像服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取数据时以数据流的形式存储至存储文件。通过本发明能够使得数据管道将音频数据或者视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或录像服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

根据本发明的上述音频数据或视频数据的存储方法,还可以具有以下技术特征:

在上述任一技术方案中,优选地,当为音频数据时,将音频数据或视频数据存储至存储文件的步骤,具体包括:当当前存储文件为首个存储文件时,获取音频数据的固定字节并作为文件固定头部;向当前存储文件存储文件固定头部及音频数据,同时记录存储时间;当存储时间达到预设时间时,停止向当前存储文件存储所述音频数据,并建立下一存储文件;向下一存储文件存储文件固定头部及剩余音频数据,直至下一存储时间达到预设时间。

在该技术方案中,启动mediarecorder并以音频流的形式读取音频数据,当首次将此音频数据存储至文件时,也即存储的当前存储文件为首个存储文件时,获取音频数据的前六个字节内容作为文件固定头部,文件固定头部为amr音频格式固定头部,将此文件固定头部存储至当前存储文件,随后将音频数据以音频流的形式也存储至当前存储文件,并且在开始将音频数据存储至当前存储文件的同时记录存储时间,当存储的时间到达预设时间时,完成当前存储文件对音频数据的存储,建立下一个存储文件,将上述文件固定头部存储至此下一存储文件,随后将剩余的音频数据以音频流的形式也存储至下一存储文件,并在存储时间到达预设时间时停止存储,不断地将“文件固定头部+音频数据”存储至存储文件,直至将所有音频数据都以预设时间为周期存储为多个文件,能够保证存储的每个存储文件都将具有相同的amr音频格式固定头部,防止存储文件混乱。

在上述任一技术方案中,优选地,当为视频数据时,将音频数据或视频数据存储至存储文件的步骤,具体包括:向当前存储文件存储视频数据,同时记录存储时间;当存储时间达到预设时间时,停止向当前存储文件存储视频数据,并将当前存储文件格式转化为标准mp4格式文件;建立下一存储文件,向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间。

在该技术方案中,当为视频数据时,向当前存储文件存储视频数据同时记录存储时间,当存储的时间到达预设时间时,完成当前存储文件对视频数据的存储,并将当前存储文件格式转化为标准mp4格式文件,再建立下一存储文件,向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间,对视频数据进行分文件存储的同时实现格式的自动转化。

在上述任一技术方案中,优选地,向当前存储文件存储文件固定头部及音频数据,具体包括:向当前存储文件以文件固定头部在前、音频数据在后的顺序,存储文件固定头部及音频数据;向下一文件存储文件固定头部及剩余音频数据,具体包括:向下一存储文件以文件固定头部在前、剩余音频数据在后的顺序,存储文件固定头部及剩余音频数据。

在该技术方案中,在向当前存储文件或下一存储文件中存储文件固定头部和音频数据时,按照文件固定头部在前、音频数据在后的顺序进行存储,即不断地将“文件固定头部+音频数据”分别存储至每个存储文件,使得每个存储文件的头部都为相同的文件固定头部,保证文件存储清晰,防止存储文件出现混乱。

在上述任一技术方案中,优选地,音频数据的固定字节为音频数据的前六个字节;文件固定头部为amr音频格式固定头部。

在该技术方案中,根据文件存储格式,获取整个音频数据的前六个字节作为固定字节,使得每个存储文件的固定头部均为音频数据的前六个字节,保证文件存储的正确性。文件固定头部为amr音频格式固定头部,也就是说在将音频数据分别存储至存储文件的同时,按照amr音频格式使存储文件成为完整音频文件,既能够避免音频数据存储时存在漏秒的情况,又能够保证将音频数据直接存储为amr音频格式。

在上述任一技术方案中,优选地,还包括:判断向数据管道内录入音频数据或视频数据是否结束;当向数据管道内录入音频数据或视频数据结束时,关闭并存储当前存储文件或下一存储文件。

在该技术方案中,实时判断向管道内录入的音频数据或视频数据是否结束,当结束时代表音频数据或视频数据管道内已经没有音频数据或视频数据,则关闭存储的文件,完成音频数据或视频数据的存储,并在关闭存储视频数据的文件后用c层库将该存储文件处理为标准mp4文件,避免系统资源的浪费,其中c层库为安卓项目中利用c语言代码写的数据库。

根据本发明的另一个目的,提出了一种音频数据或视频数据的存储系统,包括:管道建立单元,用于建立数据管道;录入单元,用于向数据管道内录入音频数据或视频数据;读取单元,用于读取音频数据或视频数据;存储单元,用于将音频数据或视频数据存储至存储文件。

本发明提供的音频数据或视频数据的存储系统,文件流是指同一时刻只可以写或者读的文件;管道是指通过创建两个文件句柄称为管道的两端,其中一端可以读,称为a端,另外一端可以写,称为b端。管道建立单元新建android录音或录像服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,录入单元向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取单元读取数据时,通过存储单元以数据流的形式将音频数据或者视频数据存储至存储文件。通过本发明能够使得数据管道将音频数据或者视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或录像服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

根据本发明的上述音频数据或视频数据的存储系统,还可以具有以下技术特征:

在上述任一技术方案中,优选地,还包括:获取单元,用于当为音频数据,以及当当前存储文件为首个存储文件时,获取音频数据的固定字节并作为文件固定头部;存储单元,具体用于向当前存储文件存储文件固定头部及音频数据,同时记录存储时间;以及当存储时间达到预设时间时,停止向当前存储文件存储所述音频数据;文件建立单元,用于建立下一存储文件;存储单元,还用于向下一存储文件存储所述文件固定头部及剩余音频数据,直至下一存储时间达到预设时间。

在该技术方案中,启动mediarecorder并由读取单元读取音频数据,当首次将此音频数据存储至存储文件时,也即当前存储文件为首个存储文件时,获取单元获取音频数据的前六个字节内容作为文件固定头部,文件固定头部为amr音频格式固定头部,通过存储单元将此文件固定头部存储至当前存储文件,随后将音频数据以音频流的形式也存储至当前存储文件,并且在开始将音频数据存储至当前存储文件的同时记录存储时间,当存储的时间到达预设时间时,完成当前存储文件对音频数据的存储,建立下一个存储文件,将上述文件固定头部存储至此下一存储文件,随后将剩余的音频数据以音频流的形式也存储至下一存储文件,并在存储时间到达预设时间时停止存储,不断地将“文件固定头部+音频数据”存储至存储文件,直至将所有音频数据都以预设时间为周期存储为多个存储文件。能够保证存储的每个存储文件都将具有相同的amr音频格式固定头部,防止存储文件混乱。

在上述任一技术方案中,优选地,存储单元,还用于当为视频数据时,向当前存储文件存储视频数据,同时记录存储时间;音频数据或者视频数据的存储系统,还包括:转化单元,用于当存储时间达到预设时间时,停止向当前存储文件存储视频数据,并将当前存储文件格式转化为标准mp4格式文件;文件建立单元,还用于建立下一存储文件;存储单元,还用于向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间。

在该技术方案中,当为视频数据时,存储单元向当前存储文件存储视频数据同时记录存储时间,当存储的时间到达预设时间时,完成当前存储文件对视频数据的存储,并通过转化单元将当前存储文件格式转化为标准mp4格式文件,由文件建立单元建立下一存储文件,向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间,对视频数据进行分文件存储的同时实现格式的自动转化。

在上述任一技术方案中,优选地,存储单元,具体用于:向当前存储文件以文件固定头部在前、音频数据在后的顺序,存储文件固定头部及音频数据;以及向下一存储文件以文件固定头部在前、剩余音频数据在后的顺序,存储文件固定头部及剩余音频数据。

在该技术方案中,存储单元在向当前存储文件或下一存储文件存储中文件固定头部和音频数据时,按照文件固定头部在前、音频数据在后的顺序进行存储,即不断地将“文件固定头部+音频数据”分别存储至每个存储文件,使得每个存储文件的头部都为相同的文件固定头部,保证文件存储清晰,防止存储文件出现混乱。

在上述任一技术方案中,优选地,音频数据的固定字节为音频数据的前六个字节;文件固定头部为amr音频格式固定头部。

在该技术方案中,根据文件存储格式,获取整个音频数据的前六个字节作为固定字节,使得每个存储文件的固定头部均为音频数据的前六个字节,保证文件存储的正确性。文件固定头部为amr音频格式固定头部,也就是说在将音频数据分别存储至存储文件的同时,按照amr音频格式使存储文件成为完整音频文件,既能够避免音频数据存储时存在漏秒的情况,又能够保证将音频数据直接存储为amr音频格式。

在上述任一技术方案中,优选地,还包括:判断单元,用于判断向数据管道内录入音频数据或视频数据是否结束;关闭单元,用于当向数据管道内录入音频数据或视频据结束时,关闭并存储当前存储文件或下一存储文件。

在该技术方案中,通过判断单元实时判断向管道内录入的音频数据或视频数据是否结束,当结束时代表音频数据或视频数据管道内已经没有音频数据或视频数据,则通过关闭单元关闭存储的文件,完成音频数据或视频数据的存储,并在关闭存储视频数据的文件后用c层库将该存储文件处理为标准mp4文件,避免系统资源的浪费,其中c层库为安卓项目中利用c语言代码写的数据库。

根据本发明的再一个目的,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述中任一项的音频数据或视频数据的存储方法的步骤。

本发明提供的计算机设备,是用于支持录音或录像数据存储的服务器,处理器通过运行存储在存储器上的计算机程序实现新建android录音或录像服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取数据时以数据流的形式存储至存储文件。通过本发明能够使得数据管道将音频数据或视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或录像服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

根据本发明的又一个目的,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述中任一项的音频数据或视频数据的存储方法的步骤。

本发明提供的计算机可读存储介质,计算机可读存储介质上存储有计算机程序,通过运行该计算机程序实现新建android录音或录像服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取数据时以数据流的形式存储至存储文件。通过本发明能够使得数据管道将音频数据或视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或录像服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

根据本发明的又一个目的,提出了一种智能设备,包括:处理器、存储器、输入装置,其中,处理器通过调用存储器中存储的操作指令,用于执行如上述中任一项的音频数据或视频数据的存储方法的步骤。

本发明提供的智能设备,其处理器通过调用存储器中存储的操作指令实现新建android录音或录像服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取数据时以数据流的形式存储至存储文件。通过本发明能够使得数据管道将音频数据或视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或录像服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1示出了本发明的一个实施例的音频数据或视频数据的存储方法的流程示意图;

图2示出了本发明的另一个实施例的音频数据或视频数据的存储方法的流程示意图;

图3示出了本发明的再一个实施例的音频数据或视频数据的存储方法的流程示意图;

图4示出了本发明的一个实施例的音频数据或视频数据的存储系统的示意框图;

图5示出了本发明的另一个实施例的音频数据或视频数据的存储系统的示意框图;

图6示出了本发明的再一个实施例的音频数据或视频数据的存储系统的示意框图;

图7示出了本发明的一个实施例的计算机设备的示意图;

图8示出了本发明的一个实施例的智能设备的示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。

本发明第一方面的实施例,提出一种音频数据或视频数据的存储方法,图1示出了本发明的一个实施例的音频数据或视频数据的存储方法的流程示意图。其中,该方法包括:

步骤102,建立数据管道;

步骤104,向数据管道内录入音频数据或视频数据;

步骤106,读取音频数据或视频数据;

步骤108,将音频数据或视频数据存储至存储文件。

本发明提供的音频数据或视频数据的存储方法,文件流是指同一时刻只可以写或者读的文件;管道是指通过创建两个文件句柄称为管道的两端,其中一端可以读,称为a端,另外一端可以写,称为b端。新建android录音或录像服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取数据时以数据流的形式存储至存储文件。通过本发明能够使得数据管道将音频数据或者视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或录像服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

图2示出了本发明的另一个实施例的音频数据或视频数据的存储方法的流程示意图。其中,该方法包括:

步骤202,建立数据管道;

步骤204,向数据管道内录入音频数据或视频数据;

步骤206,读取音频数据或视频数据;

步骤208,判断是否为音频数据;

步骤210,当为音频数据,以及当当前存储文件为首个存储文件时,获取音频数据的固定字节并作为文件固定头部;向当前存储文件存储文件固定头部及音频数据,同时记录存储时间;

步骤212,当存储时间达到预设时间时,停止向当前存储文件存储所述音频数据,并建立下一存储文件;向下一存储文件存储文件固定头部及剩余音频数据,直至下一存储时间达到预设时间;

步骤214,当为视频数据时,向当前存储文件存储视频数据,同时记录存储时间;

步骤216,当存储时间达到预设时间时,停止向当前存储文件存储视频数据,并将当前存储文件格式转化为标准mp4格式文件;建立下一存储文件,向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间。

在该实施例中,启动mediarecorder并以音频流的形式读取音频数据,当首次将此音频数据存储至文件时,也即存储的当前存储文件为首个存储文件时,获取音频数据的前六个字节内容作为文件固定头部,文件固定头部为amr音频格式固定头部,将此文件固定头部存储至当前存储文件,随后将音频数据以音频流的形式也存储至当前存储文件,并且在开始将音频数据存储至当前存储文件的同时记录存储时间,当存储的时间到达预设时间时,完成当前存储文件对音频数据的存储,建立下一个存储文件,将上述文件固定头部存储至此下一存储文件,随后将剩余的音频数据以音频流的形式也存储至下一存储文件,并在存储时间到达预设时间时停止存储,不断地将“文件固定头部+音频数据”存储至文件,直至将所有音频数据都以预设时间为周期存储为多个文件。能够保证存储的每个存储文件都将具有相同的amr音频格式固定头部,防止存储文件混乱。当为视频数据时,向当前存储文件存储视频数据同时记录存储时间,当存储的时间到达预设时间时,完成当前存储文件对视频数据的存储,并将当前存储文件格式转化为标准mp4格式文件,再建立下一存储文件,向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间,对视频数据进行分文件存储的同时实现格式的自动转化。

在本发明的一个实施例中,优选地,向当前存储文件存储文件固定头部及音频数据,具体包括:向当前存储文件以文件固定头部在前、音频数据在后的顺序,存储文件固定头部及音频数据;向下一文件存储文件固定头部及剩余音频数据,具体包括:向下一存储文件以文件固定头部在前、剩余音频数据在后的顺序,存储文件固定头部及剩余音频数据。

在该实施例中,在向当前存储文件或下一存储文件中存储文件固定头部和音频数据时,按照文件固定头部在前、音频数据在后的顺序进行存储,即不断地将“文件固定头部+音频数据”分别存储至每个存储文件,使得每个存储文件的头部都为相同的文件固定头部,保证文件存储清晰,防止存储文件出现混乱。

在本发明的一个实施例中,优选地,音频数据的固定字节为音频数据的前六个字节;文件固定头部为amr音频格式固定头部。

在该实施例中,根据文件存储格式,获取整个音频数据的前六个字节作为固定字节,使得每个存储文件的固定头部均为音频数据的前六个字节,保证文件存储的正确性。文件固定头部为amr音频格式固定头部,也就是说在将音频数据分别存储至存储文件的同时,按照amr音频格式使存储文件成为完整音频文件,既能够避免音频数据存储时存在漏秒的情况,又能够保证将音频数据直接存储为amr音频格式。

图3示出了本发明的再一个实施例的音频数据或视频数据的存储方法的流程示意图。其中,该方法包括:

步骤302,建立数据管道;

步骤304,向数据管道内录入音频数据或视频数据;

步骤306,读取音频数据或视频数据;

步骤308,判断是否为音频数据;

步骤310,当为音频数据,以及当当前存储文件为首个存储文件时,获取音频数据的固定字节并作为文件固定头部;向当前存储文件存储文件固定头部及音频数据,同时记录存储时间;

步骤312,当存储时间达到预设时间时,停止向当前存储文件存储所述音频数据,并建立下一存储文件;向下一存储文件存储文件固定头部及剩余音频数据,直至下一存储时间达到预设时间;

步骤314,当为视频数据时,向当前存储文件存储视频数据,同时记录存储时间;

步骤316,当存储时间达到预设时间时,停止向当前存储文件存储视频数据,并将当前存储文件格式转化为标准mp4格式文件;建立下一存储文件,向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间。

步骤318,判断向数据管道内录入音频数据或视频数据是否结束,当向数据管道内录入音频数据或视频数据未结束时返回步骤306,当向数据管道内录入音频数据或视频数据结束时进入步骤320;

步骤320,关闭并存储当前存储文件或下一存储文件。

在该实施例中,实时判断向管道内录入的音频数据或视频数据是否结束,当结束时代表音频数据或视频数据管道内已经没有音频数据或视频数据,则关闭存储的文件,完成音频数据或视频数据的存储,并在关闭存储视频数据的文件后用c层库将该存储文件处理为标准mp4文件,避免系统资源的浪费,其中c层库为安卓项目中利用c语言代码写的数据库。

本发明第二方面的实施例,提出一种音频数据或视频数据的存储系统,图4示出了本发明的一个实施例的音频数据或视频数据的存储系统400的示意框图。其中,该系统包括:

管道建立单元402,用于建立数据管道;

录入单元404,用于向数据管道内录入音频数据或视频数据;

读取单元406,用于读取音频数据或视频数据;

存储单元408,用于将音频数据或视频数据存储至存储文件。

本发明提供的音频数据或视频数据的存储系统,文件流是指同一时刻只可以写或者读的文件;管道是指通过创建两个文件句柄称为管道的两端,其中一端可以读,称为a端,另外一端可以写,称为b端。管道建立单元402新建android录音或录像服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,录入单元404向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取单元406读取数据时,通过存储单元408以数据流的形式将音频数据或者视频数据存储至存储文件。通过本发明能够使得数据管道将音频数据或者视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或录像服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

图5示出了本发明的另一个实施例的音频数据或视频数据的存储系统500的示意框图。其中,该系统包括:

管道建立单元502,用于建立数据管道;

录入单元504,用于向数据管道内录入音频数据或视频数据;

读取单元506,用于读取音频数据或视频数据;

存储单元508,用于将音频数据或视频数据存储至存储文件。

获取单元510,用于当为音频数据,以及当当前存储文件为首个存储文件时,获取音频数据的固定字节并作为文件固定头部;

存储单元508,用于向当前存储文件存储文件固定头部及音频数据,同时记录存储时间;以及当存储时间达到预设时间时,停止向当前存储文件存储音频数据;

文件建立单元512,用于建立下一存储文件;

存储单元508,还用于向下一存储文件存储文件固定头部及剩余音频数据,直至下一存储时间达到预设时间;

存储单元508,还用于当为视频数据时,向当前存储文件存储视频数据,同时记录存储时间;

音频数据或视频数据的存储系统500,还包括:

转化单元514,用于当存储时间达到预设时间时,停止向当前存储文件存储视频数据,并将当前存储文件格式转化为标准mp4格式文件;

文件建立单元512,还用于建立下一存储文件;

存储单元508,还用于向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间。

在该实施例中,启动mediarecorder并由读取单元506以音频流的形式读取音频数据,当首次将此音频数据存储至文件时,也即存储的当前存储文件为首个存储文件时,获取单元510获取音频数据的前六个字节内容作为文件固定头部,文件固定头部为amr音频格式固定头部,通过存储单元508将此文件固定头部存储至当前存储文件,随后将音频数据以音频流的形式也存储至当前存储文件,并且在开始将音频数据存储至当前文件的同时记录存储时间,当存储的时间到达预设时间时,完成当前存储文件对音频数据的存储,文件建立单元512建立下一个存储文件,将上述文件固定头部存储至此下一存储文件,随后将剩余的音频音数据以音频流的形式也存储至下一存储文件,并在存储时间到达预设时间时停止存储,不断地将“文件固定头部+音频数据”存储至文件,直至将所有音频数据都以预设时间为周期存储为多个文件。能够保证存储的每个存储文件都将具有相同的amr音频格式固定头部,防止存储文件混乱。当为视频数据时,存储单元508向当前存储文件存储视频数据同时记录存储时间,当存储的时间到达预设时间时,完成当前存储文件对视频数据的存储,并通过转化单元514将当前存储文件格式转化为标准mp4格式文件,由文件建立单元512建立下一存储文件,向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间,对视频数据进行分文件存储的同时实现格式的自动转化。

在上述任一技术方案中,优选地,存储单元508,具体用于:向当前存储文件以文件固定头部在前、音频数据在后的顺序,存储文件固定头部及音频数据;以及向下一存储文件以文件固定头部在前、剩余音频数据在后的顺序,存储文件固定头部及剩余音频数据。

在该技术方案中,存储单元508在向当前存储文件或下一存储文件存储中文件固定头部和音频数据时,按照文件固定头部在前、音频数据在后的顺序进行存储,即不断地将“文件固定头部+音频数据”分别存储至每个存储文件,使得每个存储文件的头部都为相同的文件固定头部,保证文件存储清晰,防止存储文件出现混乱。

在本发明的一个实施例中,优选地,音频数据的固定字节为音频数据的前六个字节;文件固定头部为amr音频格式固定头部。

在该实施例中,根据文件存储格式,获取整个音频数据的前六个字节作为固定字节,使得每个存储文件的固定头部均为音频数据的前六个字节,保证文件存储的正确性。文件固定头部为amr音频格式固定头部,也就是说在将音频数据分别存储至存储文件的同时,按照amr音频格式使存储文件成为完整音频文件,既能够避免音频数据存储时存在漏秒的情况,又能够保证将音频数据直接存储为amr音频格式。

图6示出了本发明的再一个实施例的音频数据或视频数据的存储系统600的示意框图。其中,该系统包括:

管道建立单元602,用于建立数据管道;

录入单元604,用于向数据管道内录入音频数据或视频数据;

读取单元606,用于读取音频数据或视频数据;

存储单元608,用于将音频数据或视频数据存储至存储文件。

获取单元610,用于当为音频数据,以及当当前存储文件为首个存储文件时,获取音频数据的固定字节并作为文件固定头部;

存储单元608,用于向当前存储文件存储文件固定头部及音频数据,同时记录存储时间;以及当存储时间达到预设时间时,停止向当前存储文件存储音频数据;

文件建立单元612,用于建立下一存储文件;

存储单元608,还用于向下一存储文件存储文件固定头部及剩余音频数据,直至下一存储时间达到预设时间;

存储单元608,还用于当为视频数据时,向当前存储文件存储视频数据,同时记录存储时间;

音频数据或视频数据的存储系统600,还包括:

转化单元614,用于当存储时间达到预设时间时,停止向当前存储文件存储视频数据,并将当前存储文件格式转化为标准mp4格式文件;

文件建立单元612,还用于建立下一存储文件;

存储单元608,还用于向下一存储文件存储剩余视频数据,直至下一存储时间达到预设时间;

判断单元616,用于判断向数据管道内录入音频数据或视频数据是否结束;

关闭单元618,用于当向数据管道内录入音频数据或视频数据结束时,关闭并存储当前存储文件或下一存储文件。

在该实施例中,在存储的过程中通过判断单元616实时判断向管道内录入的音频数据或视频数据是否结束,当结束时代表音频数据或视频数据管道内已经没有音频数据或视频数据,则由关闭单元618关闭存储的文件,完成音频数据或视频数据的存储,并在关闭存储视频数据的文件后用c层库将该存储文件处理为标准mp4文件,避免系统资源的浪费,其中c层库为安卓项目中利用c语言代码写的数据库。

本发明第三方面的实施例,提出一种计算机设备,图7示出了本发明的一个实施例的计算机设备700的示意图。其中,该设备包括:

存储器702、处理器704及存储在存储器702上并可在处理器704上运行的计算机程序,处理器704执行计算机程序时实现如上述中任一项的音频数据或视频数据的存储方法的步骤。

本发明提供的计算机设备,是用于支持录音或录像数据存储的服务器,处理器704通过运行存储在存储器702上的计算机程序实现新建android录音或视频服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取数据时以数据流的形式存储至存储文件。通过本发明能够使得数据管道将音频数据或视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或视频服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

本发明第四方面的实施例,提出一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述中任一项的音频数据或视频数据的存储方法的步骤。

本发明提供的计算机可读存储介质,计算机可读存储介质上存储有计算机程序,通过运行该计算机程序实现新建android录音或视频服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取数据时以数据流的形式存储至存储文件。通过本发明能够使得数据管道将音频数据或视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或视频服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

本发明第四方面的实施例,提出一种智能设备,图8示出了本发明的一个实施例的智能设备800的示意图。其中,该设备包括:

处理器802、存储器804、输入装置806,其中,处理器802通过调用存储器804中存储的操作指令,用于执行如上述中任一项的音频数据或视频数据的存储方法的步骤。

本发明提供的智能设备,通过输入装置806向数据管道内录入音频数据或视频数据,处理器802通过调用存储器804中存储的操作指令实现新建android录音或视频服务mediarecorder,新建数据管道,并将mediarecorder输出设置为此数据管道,向数据管道的b端一数据流的形式录入音频数据或者视频数据,在读取数据时以数据流的形式存储至存储文件。通过本发明能够使得数据管道将音频数据或视频数据以数据流的形式进行录入和读取进而即时传输音频数据或者视频数据,以及无需停止并重新启动录音或视频服务mediarecorder就能够将数据完整地存储至各个文件,避免了重启mediarecorder而导致的文件之间存在漏秒的情况。

在本发明的一个具体实施例中,录音数据的存储方法基于安卓系统,具体为一种在不重启录音服务情况下而分文件存储录音的方法,该方法包括:

步骤一,新建android录音服务mediarecorder,新建管道,并将mediarecorder输出设置为此管道,启动mediarecorder,由系统录音服务向管道内写入数据,用户在主线程内从管道中读取数据。

步骤二,首先,当存储文件为首个存储文件时,将此存储文件的标记flag标记为true,以后的非首个文件标记为false。然后,循环从管道中以音频流方式读取数据,判断标记flag,如果标记flag为true,则记录该数据前面的六个字节内容,并将该六个字节内容作为amr音频格式固定头部;如果标记flag为false,不做处理,即不需再获取该数据前面的六个字节内容。

步骤三,将获取的amr音频格式固定头部与数据存储至存储文件,并开始计时,判断是否达到固定计时周期,如果否则一直将数据存储至此存储文件;如果是则关闭此存储文件,同时新建下一个存储文件,将amr音频格式固定头部与剩余的数据存储至下一存储文件,当又达到固定计时周期后再向再下一个存储文件中存储数据,直至数据全部都存储至每个存储文件中。对于每一个文成而言,就是一个相同的头部+当前这段时间的数据,构成一个完整的amr音频格式。

步骤四,判断是否停止录音,如果是,则关闭存储文件,即数据存储完成;如果否,则继续步骤三。

本发明中向管道而不是文件中写入录音,不断循环取出管道中数据并进行计时,每隔段时间将数据写入一个个存储文件,并且写入新文件时按照音频amr格式将存储文件补充为完整的音频文件。既不用重启mediarecorder,同时又可以分小文件将音频存储为完整正确的音频格式文件。

在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1