本发明涉及音频数据处理技术领域,具体说是一种模拟全景音效的方法。
背景技术:
在电脑或移动设备(手机、平板电脑、蓝牙音箱等)聆听音乐或欣赏电影时,为了获得更佳的使用感受和体验,大多数用户会调节、设定符合自己需要的音效。
音效就是指由声音所制造的效果,是指为增进一场面之真实感、气氛或戏剧讯息,而加于声带上的杂音或声音。所谓的声音则包括了乐音和效果音。包括数字音效、环境音效、mp3音效(普通音效、专业音效)。
音效或声效(soundeffects或audioeffects)是人工制造或加强的声音,用来增强对电影、电子游戏、音乐或其他媒体的艺术或其他内容的声音处理。
常见的音效多为自定义音效,也即虚拟音效,大多需要通过对均衡器(equalizer,简称为eq)进行调节获得,调节eq值就会改变音效。
根据eq特征调音效,我们要先掌握两个概念:频率范围(单位hz),表示功率放大器的最低工作频率至最高工作频率之间的范围。频率响应(单位分贝db),功率放大器的输出增益随着随输入信号频率变化而变化的现象。自定义音效就是通过调节eq均衡器,改变频率范围和频率响应,从而得到不同的音效。
均衡器设置有所不同,有些为三段均衡,有些为六段均衡。频段越多,可调节音效程度越细腻,比如大家在pc中常用的《千千静听》软件就有十段均衡之多。
甚低频增强低音震撼感(16hz~60hz),人对该频段的感觉要比听觉灵敏,能给音乐以强有力的感觉。但过多强调该频段,会使乐声混浊不清。
低频加强主音节奏(60hz~250hz),该频段包含着节奏声部的基础音。改变该频段会改变音乐的平衡。80hz附近频率在高响度时能给人强烈的声场刺激,而且不会使人不舒服。80hz~125hz频段对人的刺激较强,且会引起不适感,所以响度不宜过大。100hz~250hz频段可影响声音的丰满度,使声音圆润甜美,但过多会引起乐声混浊,增大疲劳感。
中频改变人声及乐器声(250hz~2000hz),该频段包含大多数乐器的低次谐波,提升太多会出现象电话样音色。300hz~500hz以下,明显衰减会使声音缺乏力度感,感到单薄;提升500hz~1000hz这一倍频程,会使乐器声变为似喇叭样声音,过多时使人有嘈杂感;提升1000hz~2000hz这一频段,会发出金属声,改变女声和高音乐器。
高中频引起听觉疲劳(2khz~4khz),该频段提升会掩蔽话音的重要识别音,导致声音口齿不清,该频段对人声的明亮度影响最大,一般不宜过多衰减,以免降低明亮度,但提升过多,特别是3khz附近人耳听觉灵敏区,容易引起听觉疲劳。
高频影响声场控制声音明亮度(4khz~16khz),该频段为临场感段,能影响说话声和乐器声的清晰度。适当提升该频段能使声音明亮突出,有利于提高声音的清晰度和丰富层次。5khz~6khz如有明显衰减,会使声音暗哑无色彩。该频段响度过大会产生使人难忍的刺耳感。12khz附件若过于提升,易造成设备过载使声音发毛。
全景音效,也称为全景环绕音效,通过萦绕于四周且极逼真的流音效模拟,演绎出多声道的环绕声场,能使声音更逼真像在现场。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种模拟全景音效的方法,在播放界面模拟全景音效对应的若干个喇叭,发音时相应的喇叭产生播放音乐的动画效果,同时,对音频数据进行处理,对外输出相应的模拟音效,播放界面的动画效果和音频数据的输出一致性(同步性)好,系统资源开销小,提升用户的使用感受。
为达到以上目的,本发明采取的技术方案是:
一种模拟全景音效的方法,其特征在于,包括如下步骤:
步骤1,设定全景音效对应的若干个喇叭,其中:所述若干个喇叭的默认值为7个,用于构造环绕场景效果,将7个喇叭分别设定为:
左侧3个,左上喇叭,左高音喇叭,左下喇叭,
右侧3个,右上喇叭,右高音喇叭,右下喇叭,
下侧1个,重低音喇叭,
步骤2,生成播放界面,其中:
首先,基于帧布局控件framelayout,自定义新的控件surroundview,确定容器布局的大小,根据屏幕进行适配,距离屏幕左边和右边各一定间距,构造一个预设区域,
然后,计算步骤1所述若干个喇叭的坐标,
再后,加载喇叭图片到内存中,一一对应的生成7个imageview控件,并将内存中的喇叭图片设置给imageview控件进行显示,
最后,在中间摆放沙发的图片控件,绘制沙发周围的三个渐变圆圈,绘制对应喇叭的不同方向的文字,绘制波纹,
步骤3,当用户点击总控开关,开启动画。
在上述技术方案的基础上,在步骤1中,还构造总控开关,用于控制7个喇叭的动画效果展示或禁止,
所述动画效果包括但不限于音频波纹动画效果。
在上述技术方案的基础上,步骤1中,还包括:
设定左侧和右侧的喇叭同时变化,其他喇叭单独变化,所述同时变化是指:左侧喇叭和右侧喇叭同时开启同时关闭。
在上述技术方案的基础上,左下喇叭和右下喇叭支持单独同时开启同时关闭。
在上述技术方案的基础上,步骤2中,所述距离屏幕左边和右边各一定间距,该间距默认值为20像素,
所述预设区域为正方形区域。
在上述技术方案的基础上,步骤2中,所述计算步骤1所述若干个喇叭的坐标,具体步骤如下:
首先,获取用户预设的设计图,计算出720*1280分辨率下的宽高比例,根据设计图进行测量,记录7个喇叭图片左上角距离整个控件的左上角的距离,
然后,实时获取当前屏幕的宽高,
再后,将当前屏幕的宽高,乘以计算出的宽高比例,以适配当前屏幕及确定方位,
最后,将计算出图片左上角的坐标点,存储在宽高比例的链表mratiolist里,存储的对象是point。
在上述技术方案的基础上,步骤2中,在自定义控件surroundview的构造函数中,调用布局的addview函数,将生成的控件imageview添加到布局中,
在测量回调周期中,获取自定义控件surroundview的宽度以及中心点坐标,获取左边右边图片的高度,
在布局回调中,根据存储的坐标,对图片控件imageview进行摆放,
在绘制回调中,首先绘制底部灯光,根据开启不同方位喇叭的数量,绘制不同效果的灯光。
本发明所述的模拟全景音效的方法,在播放界面模拟全景音效对应的若干个喇叭,发音时相应的喇叭产生播放音乐的动画效果,同时,对音频数据进行处理,对外输出相应的模拟音效,播放界面的动画效果和音频数据的输出一致性(同步性)好,系统资源开销小,提升用户的使用感受。
附图说明
本发明有如下附图:
图1本发明的流程图。
图2播放界面效果示意图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1、2所示,本发明所述的模拟全景音效的方法,包括如下步骤:
步骤1,设定全景音效对应的若干个喇叭,其中:所述若干个喇叭的默认值为7个,用于构造环绕场景效果,将7个喇叭分别设定为:
左侧3个,左上喇叭,左高音喇叭,左下喇叭,
右侧3个,右上喇叭,右高音喇叭,右下喇叭,
下侧1个,重低音喇叭,
步骤2,生成播放界面,其中:
首先,基于帧布局控件framelayout,自定义新的控件surroundview,确定容器布局的大小,根据屏幕进行适配,距离屏幕左边和右边各一定间距,构造一个预设区域,
然后,计算步骤1所述若干个喇叭的坐标,
再后,加载喇叭图片到内存中,一一对应的生成7个imageview控件,并将内存中的喇叭图片设置给imageview控件进行显示,
最后,在中间摆放沙发的图片控件(包括人物和沙发),绘制沙发周围的三个渐变圆圈形成亮光波纹效果,绘制对应喇叭的不同方向的文字,绘制波纹,
步骤3,当用户点击总控开关,开启动画。
在上述技术方案的基础上,在步骤1中,还构造总控开关,用于控制7个喇叭的动画效果展示或禁止,
所述动画效果包括但不限于音频波纹动画效果。
在上述技术方案的基础上,步骤1中,还包括:
设定左侧和右侧的喇叭同时变化,其他喇叭单独变化,所述同时变化是指:左侧喇叭和右侧喇叭同时开启同时关闭;
例如:左右两侧喇叭都为关闭的情况下,点击了左侧喇叭将其开启,则右侧喇叭也同时会开启,因为左侧耳机和右侧耳机是对称的,所以为了听声音的习惯会设置为同时开启或者关闭;
更进一步,左下喇叭和右下喇叭支持单独同时开启同时关闭,所述单独是指:如果点击左上喇叭或左高音喇叭,则左侧3个喇叭都同时开启,相应的右侧3个喇叭也同时开启;但是,如果点击左下喇叭,则仅同时开启左下喇叭和右下喇叭,左/右上喇叭和左/右高音喇叭此种情况下并不开启。
在上述技术方案的基础上,步骤2中,所述距离屏幕左边和右边各一定间距,该间距默认值为20像素,
所述预设区域为正方形区域。
在上述技术方案的基础上,步骤2中,所述计算步骤1所述若干个喇叭的坐标,具体步骤如下:
首先,获取用户预设的设计图,计算出720*1280分辨率下的宽高比例,根据设计图进行测量,记录7个喇叭图片左上角距离整个控件的左上角的距离,
然后,实时获取当前屏幕的宽高,
再后,将当前屏幕的宽高,乘以计算出的宽高比例,以适配当前屏幕及确定方位,
例如,可采用以下指令:
pointfpoint=newpointf((toleft-dev)/default_width,(toleft-dev)/default_width));
其中,指令中各参数含义为:pointf是浮点型的坐标点,包含了x坐标和y坐标,
toleft是喇叭图片距离控件surroundview左边的间距,根据设计图测量的尺寸确定的,default_width宽度是设计图上的控件surroundview的总宽度720像素,而dev是根据实际尺寸进行微调的一个经验参数,其他用户可以调整这个参数值,来调节喇叭的位置,依照此方法,记录7个喇叭图片左上角距离整个控件的左上角的距离的比例,
最后,将计算出图片左上角的坐标点,存储在宽高比例的链表mratiolist里,存储的对象是point,
例如,可采用以下指令:
mratiolist.add(point);。
在上述技术方案的基础上,步骤2中,在自定义控件surroundview的构造函数中,调用布局的addview函数,将生成的控件imageview添加到布局中,
在测量回调周期中,获取自定义控件surroundview的宽度以及中心点坐标,获取左边右边图片的高度,
在布局回调中,根据存储的坐标,对图片控件imageview进行摆放,
在绘制回调中,首先绘制底部灯光,根据开启不同方位喇叭的数量,绘制不同效果的灯光。
在上述技术方案的基础上,步骤2中,绘制对应喇叭的不同方向的文字时,首先确定绘制文字的方位,与喇叭位置相对应,再以控件surroundview的中心进行旋转画布,再绘制右侧喇叭的文字,就达到了文字偏移的效果了。
在上述技术方案的基础上,步骤2中,绘制波纹时,首先绘制基于画布右侧的一个波纹的效果,如果绘制右上角的波纹,将画布旋转45°即可。步骤2中,绘制波纹时,根据控件宽高以及设计师给出的波纹间距,确定横向绘制多少条波纹。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。