在基于iOS的移动电话上实现通话录音的方法和装置制造方法

文档序号:7771514
在基于iOS的移动电话上实现通话录音的方法和装置制造方法
【专利摘要】本发明公开了一种在基于iOS的移动电话上实现通话录音的方法和装置,其中的通话录音的方法包括:监听基于iOS的移动电话的通话事件;基于MobileSubstrate框架,截获所述基于iOS的移动电话的操作系统中的音频数据处理函数;在根据所述通话事件的监听结果判断出所述基于iOS的移动电话当前处于通话状态,且在根据用户的录音设置信息判断出当前通话为需要进行录音的通话的情况下,从截获到的所述音频数据处理函数的输入参数中获取当前通话的音频数据;将所述音频数据存储到当前通话对应的音频文件中。
【专利说明】在基于iOS的移动电话上实现通话录音的方法和装置
【技术领域】
[0001]本发明涉及移动电话,特别是涉及一种在基于iOS的移动电话上实现通话录音的方法和装置。
【背景技术】
[0002]iOS是苹果公司的iPhone移动电话的操作系统。
[0003]由于iOS是一个封闭的操作系统,因此,应用开发者只能使用苹果公司对外公开提供的开发接口进行应用软件的开发;从而针对ios的应用软件所能够实现的功能会受制于这些开发接口。
[0004]针对语音通话,用户常常会有通话录音需求,然而,目前苹果公司并没有针对语音通话内容(即语音数据)提供相关的接口,因此,应用开发者无法获取语音通话过程中的语音数据,从而也就无法开发出通话录音的应用软件。而苹果公司只能给用户提供语音通话的概要信息,例如,语音通话何时开始、何时结束以及通话对方的移动电话号码等。
[0005]目前,针对iPhone移动电话,通常通过间接录音方式来实现语音通话的录音,下面例举几种通过间接录音方式实现语音通话录音的方法:
[0006]方法1、用户采用免提方式进行语音通话,并使用iPhone移动电话中的录音软件或者其他录音工具来录制iPhone移动电话外放的通话对方的通话声音以及iPhone移动电话的使用者的通话声音。
[0007]方法2、用户通过带录音功能的蓝牙耳机对语音通话进行录音。
[0008]方法3、iPhone移动电话先呼叫具有录音功能的第三方,再由第三方自动呼叫语音通话对方,然后,在iPhone移动电话与语音通话对方之间通话过程中,由第三方进行语首通话录首。
[0009]发明人在实现本发明过程中发现,上述方法一会存在录制话音不清晰的问题,而且大多数人在进行语音通话时并不习惯开启免提方式;上述方法二需要另外购置蓝牙耳机,且使用蓝牙耳机进行录音也存在使用不便之处;上述方法三需要具有自动拨号以及录音功能的第三方参与,实现成本较高,且录音内容保存在第三方,也会涉及隐私问题。

【发明内容】

[0010]鉴于上述问题,提出了本发明,以便提供一种克服上述问题或者至少部分地解决上述问题的在基于ios的移动电话上实现通话录音的方法和相应的在基于iOS的移动电话上实现通话录音的装置。
[0011]依据本发明的一个方面,提供了在基于iOS的移动电话上实现通话录音的方法,该方法包括:监听基于ios的移动电话的通话事件;基于MobileSubstrate框架,截获所述基于iOS的移动电话的操作系统中的音频数据处理函数;在根据所述通话事件的监听结果判断出所述基于iOS的移动电话当前处于通话状态,且在根据用户的录音设置信息判断出当前通话为需要进行录音的通话的情况下,从截获到的所述音频数据处理函数的输入参数中获取当前通话的音频数据;将所述音频数据存储到当前通话对应的音频文件中。
[0012]可选地,在上述方法中,所述根据所述通话事件的监听结果判断出所述基于iOS的移动电话当前处于通话状态包括:在监听到通话开始事件的情况下,判断出所述基于ios的移动电话当前处于通话状态。
[0013]可选地,在上述方法中,所述监听基于iOS的移动电话的通话事件包括:在监听到通话开始事件的情况下,将预先设置的通话状态标志位的取值设置为第一预定值;在监听到通话结束事件的情况下,将预先设置的通话状态标志位的取值设置为第二预定值;且所述根据所述通话事件的监听结果判断出所述基于ios的移动电话当前处于通话状态包括:在每次截获到所述音频数据处理函数的情况下,查询所述通话状态标志位的当前取值,并在所述通话状态标志位的当前取值为第一预定值时,判断出基于ios的移动电话当前处于通话状态。
[0014]可选地,在上述方法中,所述截获所述基于iOS的移动电话的操作系统中的音频数据处理函数包括:在所述操作系统中的进程需要调用所述音频数据处理函数时,预先设置的通话录音函数被所述进程调用,且由所述通话录音函数调用所述音频数据处理函数,以截获所述音频数据处理函数。
[0015]可选地,在上述方法中,所述方法还包括:根据用户的录音设置信息设置录音标志位的取值;且所述根据用户的录音设置信息判断出当前通话为需要进行录音的通话包括:在每次截获到所述音频数据处理函数时,查询所述录音标志位的当前取值,并根据所述录音标志位的当前取值判断出当前通话为需要进行录音的通话。
[0016]可选地,在上述方法中,所述根据用户的录音设置信息判断出当前通话为需要进行录音的通话包括:
[0017]根据用户的录音设置信息将所有的当前通话均确定为需要进行录音的通话;或者
[0018]在当前通话为拨入通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0019]在当前通话为针对预定通话对方的拨入通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0020]在当前通话为拨出通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0021]在当前通话为针对预定通话对方的拨出通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0022]在当前通话为针对预定通话对方的通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0023]在当前通话过程中,根据用户点击录音按键所产生的临时录音设置信息判断出当前通话为需要进行录音的通话。
[0024]可选地,在上述方法中,所述用户的录音设置信息包括:对所有通话进行录音的设置信息、对所有拨入通话进行录音的设置信息、针对预定通话对方的所有拨入通话进行录音的设置信息、对所有拨出通话进行录音的设置信息、针对预定通话对方的所有拨出通话进行录音的设置信息、针对预定通话对方的所有通话进行录音的设置信息以及用户针对当前通话触发基于ios的移动电话显示的录音按键所产生的临时录音设置信息中的至少一个。
[0025]可选地,在上述方法中,所述将所述音频数据存储到当前通话对应的音频文件中包括:对所述音频数据的格式进行识别;根据音频数据的格式的识别结果在判断出所述音频数据为通话对方的音频数据时,将所述音频数据存储在通话对方单声道音频文件中;根据音频数据的格式的识别结果在判断出所述音频数据为通话本方的音频数据时,将所述音频数据存储在通话本方单声道音频文件中。
[0026]可选地,在上述方法中,所述方法还包括:
[0027]在播放通话录音时,同时播放所述通话对方单声道音频文件和通话本方单声道音频文件;或者
[0028]在播放通话录音时,将所述通话对方单声道音频文件和通话本方单声道音频文件合成为双声道音频文件,并播放所述双声道音频文件。
[0029]可选地,在上述方法中,该方法还包括:对通话对方的音频数据进行音量放大调

iF.0
[0030]可选地,在上述方法中,该方法还包括:所述基于iOS的移动电话中存储有录音提示音频数据,在当前通话为需要进行录音的通话的情况下,在当前通话过程中播放所述录音提示音频数据。
[0031]根据本发明的另一方面,提供了在基于iOS的移动电话上实现通话录音的装置,该装置包括:
[0032]监听模块,用于监听基于iOS的移动电话的通话事件;
[0033]截获模块,用于基于MobileSubstrate框架,截获所述基于iOS的移动电话的操作系统中的音频数据处理函数;
[0034]获取模块,用于在根据所述通话事件的监听结果判断出所述基于iOS的移动电话当前处于通话状态,且在根据用户的录音设置信息判断出当前通话为需要进行录音的通话的情况下,从截获到的所述音频数据处理函数的输入参数中获取当前通话的音频数据;
[0035]存储模块,用于将所述音频数据存储到当前通话对应的音频文件中。
[0036]可选地,在上述装置中,所述获取模块具体用于:在监听到通话开始事件的情况下,判断出所述基于iOS的移动电话当前处于通话状态。
[0037]可选地,在上述装置中,所述监听模块具体用于:在监听到通话开始事件时,将预先设置的通话状态标志位的取值设置为第一预定值;在监听到通话结束事件时,将预先设置的通话状态标志位的取值设置为第二预定值;且所述获取模块具体用于:在截获模块每次截获到所述音频数据处理函数时,获取模块查询所述通话状态标志位的当前取值,并在所述通话状态标志位的当前取值为第一预定值时,判断出基于ios的移动电话当前处于通话状态。
[0038]可选地,在上述装置中,所述截获模块、获取模块和存储模块设置于预先设置的通话录音函数中,且在所述操作系统中的进程需要调用所述音频数据处理函数时,所述通话录音函数被所述进程调用,且由所述截获模块调用所述音频数据处理函数,以截获所述音频数据处理函数。
[0039]可选地,在上述装置中,所述装置还包括:录音标志位设置模块,用于根据用户的录音设置信息设置录音标志位的取值;[0040]且所述获取模块具体用于:在每次截获到所述音频数据处理函数时,查询所述录音标志位的当前取值,并根据所述录音标志位的当前取值判断出当前通话为需要进行录音的通话。
[0041]可选地,在上述装置中,所述获取模块具体用于:
[0042]根据用户的录音设置信息将所有的当前通话均确定为需要进行录音的通话;或者
[0043]在当前通话为拨入通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0044]在当前通话为针对预定通话对方的拨入通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0045]在当前通话为拨出通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0046]在当前通话为针对预定通话对方的拨出通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0047]在当前通话为针对预定通话对方的通话的情况下,根据用户的录音设置信息判断出当前通话为需要进行录音的通话;或者
[0048]在当前通话过程中,根据用户点击录音按键所产生的临时录音设置信息判断出当前通话为需要进行录音的通话。
[0049]可选地,在上述装置中,所述用户的录音设置信息包括:对所有通话进行录音的设置信息、对所有拨入通话进行录音的设置信息、针对预定通话对方的所有拨入通话进行录音的设置信息、对所有拨出通话进行录音的设置信息、针对预定通话对方的所有拨出通话进行录音的设置信息、针对预定通话对方的所有通话进行录音的设置信息以及用户针对当前通话触发基于ios的移动电话显示的录音按键所产生的临时录音设置信息中的至少一个。
[0050]可选地,在上述装置中,所述存储模块具体用于:对所述音频数据的格式进行识别;根据音频数据的格式的识别结果在判断出所述音频数据为通话对方的音频数据时,将所述音频数据存储在通话对方单声道音频文件中;根据音频数据的格式的识别结果在判断出所述音频数据为通话本方的音频数据时,将所述音频数据存储在通话本方单声道音频文件中。
[0051]可选地,在上述装置中,所述装置还包括:录音播放模块,用于在播放通话录音时,同时播放所述通话对方单声道音频文件和通话本方单声道音频文件;或者,用于在播放通话录音时,将所述通话对方单声道音频文件和通话本方单声道音频文件合成为双声道音频文件,并播放所述双声道音频文件。
[0052]可选地,在上述装置中,该装置还包括:音量放大模块,用于对通话对方的音频数据进行音量放大调整。
[0053]可选地,在上述装置中,该装置还包括:录音提示模块,用于存储有录音提示音频数据,在当前通话为需要进行录音的通话的情况下,在当前通话过程中播放所述录音提示音频数据。
[0054]根据本发明实施例提供的在基于iOS的移动电话上实现通话录音的方法和装置,通过利用MobileSubstrate框架可以截获到基于iOS的移动电话的iOS操作系统的音频数据处理函数(如mediaserverd进程所调用的音频数据处理函数),这样,在判断出该基于iOS的移动电话处于通话状态且当前通话需要录音时,可以方便的从截获到的音频数据处理函数的输入参数中获取到当前通话的音频数据,并将这些音频数据存储为可播放的音频文件格式,从而后续可以通过播放相应的音频文件来回放对应的通话;本发明提供的方法和装置勿需添加任何附加设备,且具有使用方便、对基于iOS的移动电话的通话无任何影响以及易于应用推广等特点。
[0055]上述说明仅是本发明技术方案的概述,为了能够更清楚的了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】

【附图说明】
[0056]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0057]图1示出了根据本发明一实施例的在基于iOS的移动电话上实现通话录音方法流程图;
[0058]图2示出了根据本发明一实施例的在基于iOS的移动电话上实现通话录音装置示意图;
[0059]图3示出了根据本发明另一实施例的在基于iOS的移动电话上实现通话录音装置示意图;
[0060]图4示出了图3示出的装置所执行的部分操作流程图。
【具体实施方式】
[0061]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0062]实施例一、在基于iOS的移动电话上实现通话录音的方法。该方法的流程如图1所示。下面以iPhone移动电话为基于iOS的移动电话为例对本方法实施例进行说明。
[0063]图1中,S100、监听iPhone移动电话的通话事件。
[0064]具体的,本发明实施例监听iPhone移动电话的通话事件主要是为了确定iPhone移动电话当前是否处于通话状态,如在监听到通话开始事件时,表示iPhone移动电话接通电话,当前处于通话状态,而后续在监听到通话结束事件时,表示iPhone移动电话已挂断当前的通话,从而其不再处于通话状态。
[0065]为了便于后续对iPhone移动电话当前是否处于通话状态进行判断,本发明实施例可以针对通话状态设置标志位,即通话状态标志位,通话状态标志位的当前取值可以明确的表示出iPhone移动电话当前是否处于通话状态;例如,在监听到通话开始事件时,将通话状态标志位的取值设置为第一预定值(如1),表示iPhone移动电话当前处于通话状态;而在监听到通话结束事件时,将通话状态标志位的取值设置为第二预定值(如0),表示iPhone移动电话当前并未处于通话状态。该通话状态标志位可以在应用初始化流程过程中被设置为第二预定值,而应用初始化流程可以在iPhone移动电话每次开机后被激活执行。
[0066]S110、基于MobileSubstrate框架,截获iPhone移动电话的操作系统中的音频数据处理函数。
[0067]具体的,针对具有MobileSubstrate框架的iPhone移动电话而言,可以通过利用MobileSubstrate框架来截获操作系统中的进程所调用的函数,从而可以获取到操作系统所产生的全部原始数据。
[0068]本发明实施例可以基于MobileSubstrate框架来设置通话录音函数,该通话录音函数的主要作用在于,截获操作系统的进程所调用的音频数据处理函数,并适时的从截获的音频数据处理函数的输入参数中获取通话的音频数据,然后,将其获取的音频数据存储起来。
[0069]在基于MobileSubstrate框架设置了通话录音函数后,在操作系统中的进程需要调用音频数据处理函数时,本发明实施例中的通话录音函数会被该进程调用,并由通话录音函数来调用音频数据处理函数,从而可以截获到操作系统中的音频数据处理函数。
[0070]一个具体的例子,mediaserverd是一个在iPhone移动电话的操作系统(iOS操作系统)上运行的系统进程,该进程负责对移动电话的音频数据进行处理;而在通话过程中,mediaserverd进程也会对各通话方的音频数据进行处理,因此,本发明实施例可以通过截获mediaserverd进程所调用的相应函数(即音频数据处理函数)来获取通话过程中的通话音频数据,通过将这些音频数据存储为可播放的音频文件格式,从而可以实现通话录音功倉泛。
[0071]需要说明的是,虽然上述S100和SllO是按照顺序先后说明的,但是在实际应用中,两者之间并没有先后执行顺序,两者通常是并行执行的。
[0072]S120、在根据通话事件的监听结果判断出iPhone移动电话当前处于通话状态,且在根据用户的录音设置信息判断出当前通话为需要进行录音的通话的情况下,从截获到的音频数据处理函数的输入参数中获取当前通话的音频数据。
[0073]具体的,iPhone移动电话的操作系统在需要对音频数据进行处理时,通常会由mediaserverd进程调用音频数据处理函数,因此,本发明实施例截获的音频数据处理函数的输入参数中的音频数据并不一定是通话过程中的音频数据;另外,有些通话也许并不是用户需要进行录音的通话,因此,本发明实施例在每次截获到音频数据处理函数时,均应进行iPhone移动电话当前是否为通话状态以及当前通话是否为需要录音的通话的判断操作。该判断操作可以由通话录音函数来执行,即在通话录音函数被进程调用后,通话录音函数需要执行上述判断操作,如果判断的结果为iPhone移动电话当前不处于通话状态,或者当前通话不是需要进行录音的通话,则通话录音函数不会执行后续的获取音频数据以及存储的操作,可以仅调用音频数据处理函数即可。
[0074]本发明实施例中的当前通话是否为需要录音的通话的判断操作可以基于录音标志位来实现。上述录音标志位的取值是根据用户的录音设置信息来设置的。上述用户的录音设置信息可以具体包括:对所有通话进行录音的设置信息、对所有拨入通话进行录音的设置信息、针对预定通话对方的所有拨入通话进行录音的设置信息、对所有拨出通话进行录音的设置信息、针对预定通话对方的所有拨出通话进行录音的设置信息、针对预定通话对方的所有通话进行录音的设置信息以及用户针对当前通话触发iPhone移动电话显示的录音按键所产生的临时录音设置信息等等。上述用户的录音设置信息可以通过iPhone移动电话中通话录音应用等提供的设置通话录音参数的界面来设置。
[0075]如果用户设置了对所有通话进行录音的设置信息,则上述录音标志位的当前取值可以始终被设置为第三预定值。
[0076]如果用户设置了对所有拨入通话进行录音的设置信息,则在监听到通话开始事件时,应判断出当前通话是拨入通话还是拨出通话,如果是拨入通话则将录音标志位的当前取值设置为第三预定值,否则,将录音标志位的当前取值设置为第四预定值。
[0077]如果用户设置了针对预定通话对方的所有拨入通话进行录音的设置信息,则在监听到通话开始事件时,可以先判断当前通话是拨入通话还是拨出通话,如果是拨入通话,可以再继续判断该拨入通话是否为预定通话对方的拨入通话,如果是预定通话对方的拨入通话,则将录音标志位的当前取值设置为第三预定值,否则,将录音标志位的当前取值设置为第四预定值。
[0078]如果用户设置了对所有拨出通话进行录音的设置信息,则在监听到通话开始事件时,应判断当前通话是拨入通话还是拨出通话,如果当前通话是拨出通话,则将录音标志位的当前取值设置为第三预定值,否则,将录音标志位的当前取值设置为第四预定值。
[0079]如果用户设置了针对预定通话对方的所有拨出通话进行录音的设置信息,则在监听到通话开始事件时,可以先判断当前通话是拨入通话还是拨出通话,如果是拨出通话,再继续判断该拨出通话是否为针对预定通话对方的拨出通话,如果是针对预定通话对方的拨出通话,则将录音标志位的当前取值设置为第三预定值,否则,将录音标志位的当前取值设置为第四预定值。
[0080]如果用户设置了针对预定通话对方的所有通话进行录音的设置信息,则在监听到通话开始事件时,应判断当前通话的通话对方是否为预先设置的预定通话对方,如果是预定通话对方,则将录音标志位的当前取值设置为第三预定值,否则,将录音标志位的当前取值设置为第四预定值。
[0081