发明内容
为了最大程度上保护音频文件的安全,提高音频文件的稳定性,达到数据恢复的目的,本发明实施例提供了一种录音同步方法、装置和设备。所述技术方案如下:
第一方面,一种录音同步方法,所述方法包括:
在录音过程中,获取音频数据流;
对获取到的音频数据流按照预设的编码格式进行编码,将编码生成的数据写入音频文件;
从正在写入的音频文件中读取数据;
将每次读取到的数据上传至服务器,使得所述服务器根据接收到数据进行同步。
从正在写入的音频文件中读取数据,包括:
根据上一次读取到的数据在所述音频文件中的位置,更新文件的已读位置;
以所述正在写入的音频文件中更新后的已读位置为本次读取的起始点,继续读取数据。
将每次读取到的数据上传至服务器,包括:
录音开始时,向所述服务器发送上传请求,使得所述服务器为所述音频文件分配文件标识;
根据所述服务器分配的文件标识,将每次读取的数据上传至服务器所保存的所述文件标识对应的音频文件的文件末尾。
将每次读取到的数据上传至服务器之后,所述方法还包括:
当读取到所述音频文件的文件末尾且确定本次录音停止时,结束数据上传。
从正在写入的音频文件中读取数据包括:
将所述正在写入的音频文件分成多个文件片段,对所述多个文件片段进行分别读取。
第二方面,一种录音同步装置,所述装置包括:
音频数据流获取模块,用于在录音过程中,获取音频数据流;
写入模块,用于对获取到的音频数据流按照预设的编码格式进行编码,,将编码生成的数据写入音频文件;
数据读取模块,用于从正在写入的音频文件中读取数据;
上传模块,用于将每次读取到的数据上传至服务器,使得所述服务器根据接收到数据进行同步。
所述数据读取模块用于根据上一次读取到的数据在所述音频文件中的位置,更新文件的已读位置;以所述正在写入的音频文件中更新后的已读位置为本次读取的起始点,继续读取数据。
所述上传模块用于录音开始时,向所述服务器发送上传请求,使得所述服务器为所述音频文件分配文件标识;根据所述服务器分配的文件标识,将每次读取的数据上传至服务器所保存的所述文件标识对应的音频文件的文件末尾。
所述上传模块还用于当读取到所述音频文件的文件末尾且确定本次录音停止时,结束数据上传。
所述数据读取模块用于将所述正在写入的音频文件分成多个文件片段,对所述多个文件片段进行分别读取。
第三方面,一种终端设备,终端设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
在录音过程中,获取音频数据流;
对获取到的音频数据流进行编码,将编码生成的数据写入音频文件;
从正在写入的音频文件中读取数据;
将每次读取到的数据上传至服务器,使得所述服务器根据接收到数据进行同步。
本发明实施例提供的技术方案带来的有益效果是:
通过在录制音频文件的同时,对音频文件中的数据进行上传,实现了实时的录音同步,即能够达到随录随存随上传的效果,还能够使得在录音未结束被意外打断或意外删除时,能够根据在服务器上已经进行的同步而最大限度的恢复录音内容,保护了音频文件的安全,提高音频文件的稳定性,达到数据恢复的目的。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种录音同步方法的流程图。参见图1,所述方法包括:
101、在录音过程中,获取音频数据流;
102、对获取到的音频数据流按照预设的编码格式进行编码,,将编码生成的数据写入音频文件;
其中,预设的编码格式为按照帧进行编码的编码格式。
103、从正在写入的音频文件中读取数据;
104、将每次读取到的数据上传至服务器,使得所述服务器根据接收到数据进行同步。
为了能够让用户放心自己数据的安全性,最大程度上恢复用户的本地数据,也为了能够应对各种意外情况的发生,可以对录音文件进行实时同步,即在录音的过程中采用随录随存随上传的方法来备份文件,这样即使遇到不可预料的情况而不得不删掉已经存储的文件时,也能够在用户平台上恢复删掉后的文件,最大程度上保护文件安全。
通过在录制音频文件的同时,对音频文件中的数据进行上传,实现了实时的录音同步,即能够达到随录随存随上传的效果,还能够使得在录音未结束被意外打断或意外删除时,能够根据在服务器上已经进行的同步而最大限度的恢复录音内容,保护了音频文件的安全,提高音频文件的稳定性,达到数据恢复的目的。
较佳的,从正在写入的音频文件中读取数据,包括:
根据上一次读取到的数据在所述音频文件中的位置,更新文件的已读位置;
以所述正在写入的音频文件中更新后的已读位置为本次读取的起始点,继续读取数据。
较佳的,将每次读取到的数据上传至服务器,包括:
录音开始时,向所述服务器发送上传请求,使得所述服务器为所述音频文件分配文件标识;
根据所述服务器分配的文件标识,将每次读取的数据上传至服务器所保存的所述文件标识对应的音频文件的文件末尾。
较佳的,将每次读取到的数据上传至服务器之后,所述方法还包括:
当读取到所述音频文件的文件末尾且确定本次录音停止时,结束数据上传。
较佳的,从正在写入的音频文件中读取数据包括:
将所述正在写入的音频文件分成多个文件片段,对所述多个文件片段进行分别读取。
图2是本发明实施例提供的一种录音同步的方法的流程图。参见图2,该实施例具体包括:
200、终端设备启动录音功能,分别执行步骤201和204;
在启动录音功能时,终端设备进行录音初始化,并开始通过麦克风采集声音,以获取音频数据流,此时,向为数据同步服务的服务器发送上传请求,该上传请求用于请求实时上传当前录制的音频文件,并请求服务器为该正在录制的音频文件分配文件标识。
201、在录音过程中,终端设备获取音频数据流;
在启动录音功能并进行录音初始化后,需要查看用户是否希望继续录音,如果是,则继续获取音频数据流的获取,如果否,则退出录音功能。
202、对获取到的音频数据流按照预设的编码格式进行编码,终端设备将编码生成的数据写入音频文件;
具体地,每当获取到音频数据流时,终端设备对获取到的音频数据流进行MP3格式编码,将编码生成的数据写入音频文件。
本发明实施例的在获取到音频数据流时,对音频数据流进行MP3格式编码,将采集到的PCM数据编码为MP3格式的音频文件进行保存,不断地重复此过程可以将外界的音频信息转换成连续不断的MP3音频文件。
203、当录音过程结束时,终端设备补充获取到的音频文件的文件尾,输出补充后的音频文件,结束。
需要说明的是,该MP3格式的编码过程即是不断获取音频数据流,不断进行编码的过程,不断地重复此过程可以将外界的音频信息转换成包括连续不断帧的MP3音频文件。由于MP3存储格式的音频压缩率高,且失真小,因此使用MP3的编码格式可以很大程度上方便了用户对音频的存储和使用。且由于MP3编码格式的特殊性,其编码是一帧一帧进行的,因此在音频录制过程中,即使录音发生暂停时,之前保存的帧不丢失,不会因为录音的暂停或中断设备掉电等丢失之前保存的帧,与amr或3gpp等格式的录制相比,具有较高的稳定性。
204、终端设备向服务器发送上传请求;
较佳的,当检测到终端设备接入网络时,开启该上传流程。又或者,当检测到终端设备未接入网络时,提示用户开启网络连接以便进行录音的同步,当检测到用户开启网络连接时,开启该上传流程。
该上传请求用于请求实时上传当前录制的音频文件,并请求服务器为该正在录制的音频文件分配文件标识。服务器根据终端设备的上传请求,为本次录音的音频文件分配文件标识。
在本发明实施例中,服务器当接收到终端设备的上传请求时,可以随机为本次录音的音频文件分配文件标识,该文件标识用于终端设备在上传数据时携带,以便服务器根据该文件标识对接收到的数据进行对应的保存。
205、终端设备获取到服务器分配的文件标识后,将文件的零字节位置设置为文件已读位置;
其中,文件已读位置用于标识当前音频文件已经读取并上传的数据在该音频文件中的位置。
较佳的,对于终端设备录制开始并第一次读取数据时,可以对文件已读位置进行初始的设置,即将该音频文件的零字节位置设置为文件已读位置。
206、终端设备以文件已读位置为本次读取的起始点,从正在写入的音频文件中读取数据;
其中,每次读取的数据大小可以为预设数值,该预设数值可以由技术人员在开发时设置,还可以由用户根据需求调整,本发明实施例对此不做限定。
207、终端设备根据所述服务器分配的文件标识,将每次读取的数据上传至服务器所保存的所述文件标识对应的音频文件的文件末尾;
在终端设备进行数据上传时,在上传的数据中携带服务器分配的文件标识,当服务器接收到该携带文件标识的数据时,根据文件标识确定文件标识对应的音频文件,并将本次接收到的数据保存至该文件标识对应的音频文件的文件末尾,保证了服务器侧保存音频数据的连续性。
需要说明的是,如果数据上传失败,则需继续尝试上传直到上传成功。
208、终端设备根据上一次读取到的数据在所述音频文件中的位置,更新文件的已读位置;
例如,上一次读取到的数据为音频文件的1024字节,则将1024字节更新为文件已读位置,而在本次读取时,以该1024字节位置为本次读取的起始点,读取该音频文件中1024字节以后的数据。
209、每次读取数据之前,终端设备判断当前更新后的已读位置是否为音频文件的文件末尾,如果是,执行步骤210;如果否,根据更新后的文件已读位置,执行步骤206。
较佳的,由于在录音过程中,需要进行至少一次数据的读取和上传,因此,为了保证数据的读取和上传不中断,在每次读取之前根据当前的文件已读位置判断是否已经读取到音频文件的文件末尾,以获知是否还有数据需要上传,当文件已读位置已经是音频文件的文件末尾,则可以结束数据上传,而当文件已读位置不是音频文件的文件末尾,需要继续从音频文件中读取数据并上传。
具体地,每次读取数据之前,终端设备判断当前更新后的已读位置是否为音频文件的文件末尾,如果是,则认为录音结束,结束数据上传,而如果否,则认为录音尚未结束,根据更新后的文件已读位置,以所述正在写入的音频文件中的已读位置为本次读取的起始点,从正在写入的音频文件中继续读取数据。
另外,本发明实施例是以读取音频文件中的数据并上传数据为例进行说明的,在本发明实施例提供的另一实现方式中,还可以将所述正在写入的音频文件分成多个文件片段,对所述多个文件片段进行分别读取,由于该音频文件的编码是一帧一帧进行的,因此在数据读取和上传过程中,也可以对该音频文件进行分段,每一个文件片段是一个完整的音频文件,当终端设备将多个文件片段分别读取并上传至服务器时,服务器对多个文件片段进行顺序保存,也能够完成对录音的同步,实现对录制的音频文件进行实时备份的目的。
210、判断本次录音是否停止,如果是,结束数据上传;如果否,执行步骤206。
需要说明的是,如果上传速度比录制的速度快,那么有可能上传到了文件尾的位置,但是录音还在向文件尾部继续添加新的录音内容,所以需要判断是否到文件尾之后还要判断录音是否停止,如果录音已经停止,结束这次的上传任务。
本发明实施例提供的方法,通过在录制音频文件的同时,对音频文件中的数据进行上传,实现了实时的录音同步,即能够达到随录随存随上传的效果,还能够使得在录音未结束被意外打断或意外删除时,能够根据在服务器上已经进行的同步而最大限度的恢复录音内容,保护了音频文件的安全,提高音频文件的稳定性,达到数据恢复的目的。
图3是本发明实施例提供的一种录音同步装置的结构示意图。参见图3,所述装置包括:音频数据流获取模块301、写入模块302、数据读取模块303和上传模块304,
音频数据流获取模块301用于在录音过程中,获取音频数据流;音频数据流获取模块301与写入模块302链接,该写入模块302用于对获取到的音频数据流按照预设的编码格式进行编码,将编码生成的数据写入音频文件;该写入模块302与数据读取模块303链接,该数据读取模块303用于从正在写入的音频文件中读取数据;该数据读取模块303与上传模块304链接,该上传模块304用于将每次读取到的数据上传至服务器,使得所述服务器根据接收到数据进行同步。
较佳的,所述数据读取模块303用于根据上一次读取到的数据在所述音频文件中的位置,更新文件的已读位置;以所述正在写入的音频文件中更新后的已读位置为本次读取的起始点,继续读取数据。
较佳的,所述上传模块304用于录音开始时,向所述服务器发送上传请求,使得所述服务器为所述音频文件分配文件标识;根据所述服务器分配的文件标识,将每次读取的数据上传至服务器所保存的所述文件标识对应的音频文件的文件末尾。
较佳的,所述上传模块304还用于当读取到所述音频文件的文件末尾且确定本次录音停止时,结束数据上传。
较佳的,所述数据读取模块303用于将所述正在写入的音频文件分成多个文件片段,对所述多个文件片段进行分别读取。
本发明实施例提供的装置,通过在录制音频文件的同时,对音频文件中的数据进行上传,实现了实时的录音同步,即能够达到随录随存随上传的效果,还能够使得在录音未结束被意外打断或意外删除时,能够根据在服务器上已经进行的同步而最大限度的恢复录音内容,保护了音频文件的安全,提高音频文件的稳定性,达到数据恢复的目的。
需要说明的是:上述实施例提供的录音同步装置在录音同步时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的录音同步装置与录音同步方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
图4为本发明实施例所涉及的终端设备的结构示意图,该终端设备可以用于实施上述实施例中提供的录音同步方法。具体来讲:
终端设备400可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图4中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband CodeDivision Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端设备400的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端设备400的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图4中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端设备400还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端设备400移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端设备400还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端设备400之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端设备400的通信。
WiFi属于短距离无线传输技术,终端设备400通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了WiFi模块170,但是可以理解的是,其并不属于终端设备400的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端设备400的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端设备400的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端设备400还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端设备400还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端设备的显示单元是触摸屏显示器,终端设备还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
在录音过程中,获取音频数据流;
对获取到的音频数据流按照预设的编码格式进行编码,将编码生成的数据写入音频文件;
从正在写入的音频文件中读取数据;
将每次读取到的数据上传至服务器,使得所述服务器根据接收到数据进行同步。
可选地,所述终端的存储器中,还包含用于执行以下操作的指令:
根据上一次读取到的数据在所述音频文件中的位置,更新文件的已读位置;
以所述正在写入的音频文件中更新后的已读位置为本次读取的起始点,继续读取数据。
可选地,所述终端的存储器中,还包含用于执行以下操作的指令:
录音开始时,向所述服务器发送上传请求,使得所述服务器为所述音频文件分配文件标识;
根据所述服务器分配的文件标识,将每次读取的数据上传至服务器所保存的所述文件标识对应的音频文件的文件末尾。
可选地,所述终端的存储器中,还包含用于执行以下操作的指令:
当读取到所述音频文件的文件末尾且确定本次录音停止时,结束数据上传。
可选地,所述终端的存储器中,还包含用于执行以下操作的指令:
将所述正在写入的音频文件分成多个文件片段,对所述多个文件片段进行分别读取。
本发明实施例提供的终端设备,通过在录制音频文件的同时,对音频文件中的数据进行上传,实现了实时的录音同步,即能够达到随录随存随上传的效果,还能够使得在录音未结束被意外打断或意外删除时,能够根据在服务器上已经进行的同步而最大限度的恢复录音内容,保护了音频文件的安全,提高音频文件的稳定性,达到数据恢复的目的。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。