基于iPhone平台下实现的语音视频通话方法

文档序号:7862236阅读:305来源:国知局
专利名称:基于iPhone平台下实现的语音视频通话方法
技术领域
本发明涉及一种语音视频通话方法,特别涉及一种基于iPhone平台下实现的语音视频通话方法。背景技术
在目前的移动互联网应用中,随着即时通讯的迅猛发展,基于网络的各种通讯应用软件越来越多,而且备受人们的喜欢,比如人们喜爱微信、QQ,它们都支持两个用户进行语音视频聊天。当前的移动开发商普遍将自己开发的应用软件放到苹果商店,供人们去下载使用。现有各种通讯应用软件存在一些不便之处,比如微信的聊天方式不是发送音频流,而是通过发送音频文件,实时性较差,而QQ的聊天没有融入变音效果,使用较不便。
发明内容
本发明要解决的技术问题是针对现有技术不足,提供一种通讯及时、流畅、功能强的 基于iPhone平台下实现的语音视频通话方法。本发明的技术方案
一种基于iPhone平台下实现的语音视频通话方法,首先,将通话分为视频、音频和变音三个部分,各客户端之间的通讯采用socket通讯,每一个iPhone设备不仅是客户端,同时也是一个进行数据接收的小型服务器;然后,进行如下步骤
步骤I :创建本通话系统的服务器,用来保存每个客户端的相关信息;
步骤2 :进行视频帧数据的发送和接收因为iPhone4之后的设备带有前置摄像头,同时API中有如何调用摄像头的类库,那么我们在这里就容易获取视频流的数据;
调用iPhone平台中的视频采集API,设置视频每秒采集的帧数为15帧-20帧;如果帧采集数过少,就会影响视频播放的流畅度,如果采集帧数过高,会造成数据量过大,导致传输速度过慢,同样会影响效果。通过采集类的委托方法获取每一帧的数据,把每一帧的数据转化成二进制数据;在这里我们就可以进行数据的发送了,但是因为数据生成速度比较快,如果只是简单的数据发送,在网络情况好的下,用户是感觉不到视频的卡壳的,但是如果网络稍微差点,用户的体验感就会立马下降。我们先对数据进行压缩,然后再通过socket通讯进行数据发送,对方客户端接收到数据后,首先进行数据解压缩,然后再把帧数据还原,这样就可以实现视频的流畅播放了;
步骤3 :进行音频数据的发送和接收大多数的音频通讯实现的都是对讲功能,就是两个客户端进行音频数据的录制,然后通过服务器进行数据的交互,双方收到音频数据后,往本地写入,生成对应音频文件,然后调用系统提供的API播放出来就行了。但是这种方式不能实现数据的即时交互,而且录制音频的时间有限制,时间不能太长,如果太长就会导致数据量过大,数据交互时间太长,效果不是太好;
本发明采用即时获取音频流数据的方法进行数据的发送和接收;即时获取音频流数据的方法为采用iPhone平台中提供的API中的AudioToolbox. framework框架文件进行音频数据的采集和还原,每次开始采集音频数据的时候,事先创建三个数据缓冲池,在采集音频数据的过程中,在每次的回调方法中轮流向三个缓冲池中填充音频二进制文件,在每次填充的过程中,我们依此从三个缓冲数据池中取出数据,通过socket通讯进行数据的发送,我们在播放音频数据的时候,也是事先创建三个数据缓冲池,每次获取数据后就向三个数据缓冲池依次填充数据,然后进行音频数据的还原,这样就可以即时发送音频数据了 ;步骤4 :音频变音功能的实现通过音频处理库(如开源库soundtouch)
来进行音频数据的转换,在客户端收到数据后,通过设置音频数据时间、振幅和频率来实现变音,设置音频数据的时间可控制音频的播放长度,设置音频数据的振幅和频率可以设置不同的变音效果。步骤I中相关信息含有客户端的当前IP,当各客户端之间直接进行通讯时,需要知道双方的当前IP,每个客户端首先获取自身的当前IP,然后把自身的当前IP发送给本通话系统的服务器,如果两客户端想要建立连接,先从本通话系统的服务器获取对方的当前IP,然后通过Socket通讯建立连接,就能进行数据接收和发送了。步骤4中通过iPhone平台中的API设置声音的采样频率、声道、音高(pitch)、速率和声道,从而实现声音的变速、变调、变速又变调的效果;通过iPhone平台中的API能够·对媒体流实时操作,也能对音频文件操作,音频文件采用32位浮点或者16位定点数据,支持单声道或者双声道,声音的采样频率范围是8k 48k ;这种方式能在即时的语音聊天中融入变音功能。本发明的有益效果
I.本发明在进行视频帧数据的发送和接收时,先对数据进行压缩,然后再通过socket通讯进行数据发送,对方客户端接收到数据后,首先进行数据解压缩,然后再把帧数据还原,保证了视频的流畅度。2.本发明在进行音频数据的发送和接收时,采用即时获取音频流数据的方法,保证了音频的即时沟通;同时在发送音频流的时候,融入了变音技术,功能性更强,能够让通话变得有趣味。具体实施例方式 基于iPhone平台下实现的语音视频通话方法为首先,将通话分为视频、音频和变音三个部分,各客户端之间的通讯采用socket通讯,每一个iPhone设备不仅是客户端,同时也是一个进行数据接收的小型服务器;然后,进行如下步骤
步骤I :创建本通话系统的服务器,用来保存每个客户端的相关信息;
步骤2 :进行视频帧数据的发送和接收因为iPhone4之后的设备带有前置摄像头,同时API中有如何调用摄像头的类库,那么我们在这里就容易获取视频流的数据;
调用iPhone平台中的视频采集API,设置视频每秒采集的帧数为15帧-20帧;如果帧采集数过少,就会影响视频播放的流畅度,如果采集帧数过高,会造成数据量过大,导致传输速度过慢,同样会影响效果。通过采集类的委托方法获取每一帧的数据,把每一帧的数据转化成二进制数据;在这里我们就可以进行数据的发送了,但是因为数据生成速度比较快,如果只是简单的数据发送,在网络情况好的下,用户是感觉不到视频的卡壳的,但是如果网络稍微差点,用户的体验感就会立马下降。我们先对数据进行压缩,然后再通过socket通讯进行数据发送,对方客户端接收到数据后,首先进行数据解压缩,然后再把帧数据还原,这样就可以实现视频的流畅播放了;步骤3 :进行音频数据的发送和接收大多数的音频通讯实现的都是对讲功能,就是两个客户端进行音频数据的录制,然后通过服务器进行数据的交互,双方收到音频数据后,往本地写入,生成对应音频文件,然后调用系统提供的API播放出来就行了。但是这种方式不能实现数据的即时交互,而且录制音频的时间有限制,时间不能太长,如果太长就会导致数据量过大,数据交互时间太长,效果不是太好;
本发明采用即时获取音频流数据的方法进行数据的发送和接收;即时获取音频流数据的方法为采用iPhone平台中提供的API中的AudioToolbox. framework框架文件进行音频数据的采集和还原,每次开始采集音频数据的时候,事先创建三个数据缓冲池,在采集音频数据的过程中,在每次的回调方法中轮流向三个缓冲池中填充音频二进制文件,在每
次填充的过程中,我们依此从三个缓冲数据池中取出数据,通过socket通讯进行数据的发送,我们在播放音频数据的时候,也是事先创建三个数据缓冲池,每次获取数据后就向三个数据缓冲池依次填充数据,然后进行音频数据的还原,这样就可以即时发送音频数据了 ;步骤4 :音频变音功能的实现通过音频处理库(如开源库soundtouch)
来进行音频数据的转换,在客户端收到数据后,通过设置音频数据时间、振幅和频率来实现变音,设置音频数据的时间可控制音频的播放长度,设置音频数据的振幅和频率可以设置不同的变音效果。步骤I中相关信息含有客户端的当前IP,当各客户端之间直接进行通讯时,需要知道双方的当前IP,每个客户端首先获取自身的当前IP,然后把自身的当前IP发送给本通话系统的服务器,如果两客户端想要建立连接,先从本通话系统的服务器获取对方的当前IP,然后通过Socket通讯建立连接,就能进行数据接收和发送了。步骤4中通过iPhone平台中的API设置声音的采样频率、声道、音高(pitch)、速率和声道,从而实现声音的变速、变调、变速又变调的效果;通过iPhone平台中的API能够对媒体流实时操作,也能对音频文件操作,音频文件采用32位浮点或者16位定点数据,支持单声道或者双声道,声音的采样频率范围是8k 48k ;这种方式能在即时的语音聊天中融入变音功能。
权利要求
1.一种基于iPhone平台下实现的语音视频通话方法,其特征是首先,将通话分为视频、音频和变音三个部分,各客户端之间的通讯采用socket通讯,把每一个iPhone设备作为一个客户端,然后,进行如下步骤 步骤I :创建本通话系统的服务器,用来保存每个客户端的相关信息; 步骤2 :进行视频帧数据的发送和接收调用iPhone平台中的视频采集API,设置视频每秒采集的帧数为15帧-20帧;通过采集类的委托方法获取每一帧的数据,把每一帧的数据转化成二进制数据;然后,先对数据进行压缩,再通过socket通讯进行数据发送,对方客户端接收到数据后,首先进行数据解压缩,然后再把帧数据还原,这样就可以实现视频的流畅播放了 ; 步骤3 :进行音频数据的发送和接收采用即时获取音频流数据的方法进行数据的发送和接收; 步骤4 :音频变音功能的实现通过音频处理库来进行音频数据的转换,在客户端收到数据后,通过设置音频数据时间、振幅和频率来实现变音。
2.根据权利要求I所述的基于iPhone平台下实现的语音视频通话方法,其特征是所述步骤I中相关信息含有客户端的当前IP,当各客户端之间直接进行通讯时,需要知道双方的当前IP,每个客户端首先获取自身的当前IP,然后把自身的当前IP发送给本通话系统的服务器,如果两客户端想要建立连接,先从本通话系统的服务器获取对方的当前IP,然后通过Socket通讯建立连接,就能进行数据接收和发送了。
3.根据权利要求I所述的基于iPhone平台下实现的语音视频通话方法,其特征是所述步骤3中即时获取音频流数据的方法为采用iPhone平台中提供的API中的AudioToolbox. framework框架文件进行音频数据的采集和还原,每次开始采集音频数据的时候,事先创建三个数据缓冲池,在采集音频数据的过程中,在每次的回调方法中轮流向三个缓冲池中填充音频二进制文件,在每次填充的过程中,依此从三个缓冲数据池中取出数据,通过socket通讯进行数据的发送;在播放音频数据的时候,也是事先创建三个数据缓冲池,每次获取数据后就向三个数据缓冲池依次填充数据,然后进行音频数据的还原,这样就可以即时发送音频数据了。
4.根据权利要求I所述的基于iPhone平台下实现的语音视频通话方法,其特征是所述步骤4中通过iPhone平台中的API设置声音的采样频率、声道、音高、速率和声道,从而实现声音的变速、变调、变速又变调的效果。
全文摘要
本发明涉及一种基于iPhone平台下实现的语音视频通话方法;含有如下步骤步骤1创建本通话系统的服务器,用来保存每个客户端的相关信息;步骤2进行视频帧数据的发送和接收发送时,先对数据进行压缩,再通过socket通讯进行数据发送,对方客户端接收到数据后,首先进行数据解压缩,然后再把帧数据还原;步骤3进行音频数据的发送和接收采用即时获取音频流数据的方法进行数据的发送和接收;步骤4音频变音功能的实现通过音频处理库来进行音频数据的转换,在客户端收到数据后,通过设置音频数据时间、振幅和频率来实现变音;本发明提供了一种通讯及时、流畅、功能强的基于iPhone平台下实现的语音视频通话方法。
文档编号H04N7/14GK102891977SQ201210348839
公开日2013年1月23日 申请日期2012年9月19日 优先权日2012年9月19日
发明者胡臻, 陈起 申请人:河南智游网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1