一种截取音频控件的算法制造技术

技术编号:19488920 阅读:18 留言:0更新日期:2018-11-17 11:58
本发明专利技术涉及一种截取音频控件的算法,包括如下步骤:设定外部容器控件、内部频谱控件以及边框控件三部分,以构成整个截取音频控件框架,提供对外接口用于接收用户输入的原始音频,捕获用户的确定或取消操作,如取消,则恢复矩形区域的初始位置,如确定,则转存矩形区域对应的音频片段为独立的音频文件,并提示可进行包括分享、播放在内的进一步操作。本发明专利技术,可供用户选择并截取感兴趣的音频片段,支持音频片段的存储及分享,可按需设定截取音频的播放时长,自由度高,稳定性好,凸显用户个性化,节省音频分享所需流量资源,提升用户体验,易于后期维护及二次开发。

【技术实现步骤摘要】
一种截取音频控件的算法
本专利技术涉及音频处理
,具体说是一种截取音频控件的算法。
技术介绍
现有的App,在用户欣赏音乐时,如果遇到喜欢的音乐,只能分享音乐的播放链接,或音乐的乐曲名称,或音乐的相关信息,不能提供更丰富的分享方式,而且分享后的资源,需要其他用户花费一定的流量去获取,在获取到音乐之前,其他用户不能确定自己是否也会喜欢该音乐,这导致分享后的播放不能达到预期的目标。用户间除非非常熟悉或恰有欣赏音乐的需求,否则此类音乐分享不能形成良好的互动和交流,不利于音乐的推广及传播。音乐对应的音频文件,在获取后,如果希望截取音频文件中的片段形成音频片段,需要专业的软件及一定的经验,普通用户不熟悉相应的操作方式,在不能直观、快捷的操作时,往往难以得到自己所需的音频片段,影响了用户的使用体验。在短视频普及发展的今天,短音频的发展相对滞后,还需要提供更直观、快捷的操作,方便用户截取音频文件中的片段形成音频片段,扩展短音频的市场发展。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种截取音频控件的算法,可供用户选择并截取感兴趣的音频片段,支持音频片段的存储及分享,可按需设定截取音频的播放时长,自由度高,稳定性好,凸显用户个性化,节省音频分享所需流量资源,提升用户体验,易于后期维护及二次开发。为达到以上目的,本专利技术采取的技术方案是:一种截取音频控件的算法,其特征在于,包括如下步骤:设定外部容器控件、内部频谱控件以及边框控件三部分,以构成整个截取音频控件框架,所述外部容器控件,定义外部容器控件AudioSpecLayout,继承android系统提供的FrameLayout控件,提供自由滑动内部容器的功能,所述内部频谱控件,定义频谱控件AudioLineView,集成android系统提供的View控件,生成并显示原始音频的波形图,所述边框控件,定义边框控件AudioFrameView,集成android系统提供的View控件,波形图上创建浮动层,在浮动层中生成并显示矩形区域,矩形区域用于指示待截取音频片段,矩形区域长度与音频片段播放时长关联,内部频谱控件和边框控件构成内部容器,提供对外接口用于接收用户输入的原始音频,捕获用户的确定或取消操作,如取消,则恢复矩形区域的初始位置,如确定,则转存矩形区域对应的音频片段为独立的音频文件,并提示可进行包括分享、播放在内的进一步操作。在上述技术方案的基础上,矩形区域用亮色绘制,默认亮色为黄色。在上述技术方案的基础上,所述边框控件,具体包括:步骤1,定义绘制区域的画笔mPaintFullYello对象,用来绘制矩形区域;步骤2,定义mRectLeft,mRectRight,表示左边和右边圆角矩形的区域,是RectF类型的变量;步骤3,在onSizeChanged回调中获取屏幕宽高,根据屏幕宽度和矩形距离屏幕左边及右边的距离,来构造mRectLeft,mRectRight变量的范围;步骤4,在onDraw回调中,绘制mRectLeft,mRectRight区域。在上述技术方案的基础上,所述内部频谱控件,具体包括:步骤1,定义绘制区域的画笔mPaintSpectrum对象,用来绘制频谱线条;步骤2,在onSizeChanged回调中mHeight为控件的高度;定义数值RECT_CENTER,表示线条高度的一半的像素值,则有:RECT_CENTER=(mHeight-AudioViewConfig.RECT_HEIGHT)+AudioViewConfig.RECT_HEIGHT/2,步骤3,在onDraw回调中,绘制线条。在上述技术方案的基础上,所述外部容器控件,具体包括:在点击回调onTouchEvent中,设置点击、滑动和抬起三个事件,来处理用户的手势操作。在上述技术方案的基础上,处理用户点击操作进行如下赋值操作:downX=(int)event.getX();lastMoveX=getScrollX();其中:downX是点击的横坐标,值是int类型的,event是Android系统在onTouchEvent回调中传递的操作屏幕对象,包含了用户的操作类型和点击或者滑动的屏幕中的坐标,event.getX()就是获取了用户点击的横坐标,lastMoveX记录用户从上一次到点击的时候,AudioLineView控件滑动的距离,getScrollX是AndroidViewGroup控件提供的api,用来获取子View滑动的横坐标。在上述技术方案的基础上,处理用户滑动操作进行如下赋值操作:mCurX=event.getX();在用户点击或者滑动的时候,记录下操作的横坐标mCurX,根据mCurX与点击的横坐标downX的差值,判断出用户滑动了多少距离,判断出用户滑动方向,根据这个差值调用ViewGroup提供的apistartScroll调用滑动线型控件AudioLineView。在上述技术方案的基础上,存储原始音频信息、存储音频片段信息、计算并生产音频片段和原始音频的对应关系,形成截取热点信息文件并存储。在上述技术方案的基础上,截取热点信息文件存储于本地,并上传远端进行同步更新,每个音频文件至少对应一份截取热点信息文件。在上述技术方案的基础上,用户启动截取音频控件时,从远端获取截取热点信息文件,展示音频片段和原始音频的对应关系给用户参考,用户或选择其他用户曾经截取的音频片段并存储或分享,用户或自主选择新建截取的音频片段并存储或分享。本专利技术所述的截取音频控件的算法,可供用户选择并截取感兴趣的音频片段,支持音频片段的存储及分享,可按需设定截取音频的播放时长,自由度高,稳定性好,凸显用户个性化,节省音频分享所需流量资源,提升用户体验,易于后期维护及二次开发。附图说明本专利技术有如下附图:图1本专利技术的流程图。具体实施方式以下结合附图对本专利技术作进一步详细说明。如图1所示,本专利技术所述的截取音频控件的算法,包括如下步骤:设定外部容器控件、内部频谱控件以及边框控件三部分,以构成整个截取音频控件框架,所述外部容器控件,定义外部容器控件AudioSpecLayout,继承android系统提供的FrameLayout控件,提供自由滑动内部容器的功能,所述内部频谱控件,定义频谱控件AudioLineView,集成android系统提供的View控件,生成并显示原始音频的波形图,所述边框控件,定义边框控件AudioFrameView,集成android系统提供的View控件,波形图上创建浮动层,在浮动层中生成并显示矩形区域,矩形区域用于指示待截取音频片段,矩形区域长度与音频片段播放时长关联,内部频谱控件和边框控件构成内部容器,提供对外接口用于接收用户输入的原始音频,捕获用户的确定或取消操作,如取消,则恢复矩形区域的初始位置,如确定,则转存矩形区域对应的音频片段为独立的音频文件,并提示可进行包括分享、播放在内的进一步操作。在上述技术方案的基础上,矩形区域用亮色绘制,默认亮色为黄色。在上述技术方案的基础上,所述边框控件,具体包括:步骤1,定义绘制区域的画笔mPaintFullYello对象,用来绘制矩形区域;步骤2,定义mRectLeft,mRectRight,表示左边和右边圆角矩形的区本文档来自技高网...

【技术保护点】
1.一种截取音频控件的算法,其特征在于,包括如下步骤:设定外部容器控件、内部频谱控件以及边框控件三部分,以构成整个截取音频控件框架,所述外部容器控件,定义外部容器控件AudioSpecLayout,继承android系统提供的FrameLayout控件,提供自由滑动内部容器的功能,所述内部频谱控件,定义频谱控件AudioLineView,集成android系统提供的View控件,生成并显示原始音频的波形图,所述边框控件,定义边框控件AudioFrameView,集成android系统提供的View控件,波形图上创建浮动层,在浮动层中生成并显示矩形区域,矩形区域用于指示待截取音频片段,矩形区域长度与音频片段播放时长关联,内部频谱控件和边框控件构成内部容器,提供对外接口用于接收用户输入的原始音频,捕获用户的确定或取消操作,如取消,则恢复矩形区域的初始位置,如确定,则转存矩形区域对应的音频片段为独立的音频文件,并提示可进行包括分享、播放在内的进一步操作。

【技术特征摘要】
1.一种截取音频控件的算法,其特征在于,包括如下步骤:设定外部容器控件、内部频谱控件以及边框控件三部分,以构成整个截取音频控件框架,所述外部容器控件,定义外部容器控件AudioSpecLayout,继承android系统提供的FrameLayout控件,提供自由滑动内部容器的功能,所述内部频谱控件,定义频谱控件AudioLineView,集成android系统提供的View控件,生成并显示原始音频的波形图,所述边框控件,定义边框控件AudioFrameView,集成android系统提供的View控件,波形图上创建浮动层,在浮动层中生成并显示矩形区域,矩形区域用于指示待截取音频片段,矩形区域长度与音频片段播放时长关联,内部频谱控件和边框控件构成内部容器,提供对外接口用于接收用户输入的原始音频,捕获用户的确定或取消操作,如取消,则恢复矩形区域的初始位置,如确定,则转存矩形区域对应的音频片段为独立的音频文件,并提示可进行包括分享、播放在内的进一步操作。2.如权利要求1所述的截取音频控件的算法,其特征在于:矩形区域用亮色绘制,默认亮色为黄色。3.如权利要求1所述的截取音频控件的算法,其特征在于:所述边框控件,具体包括:步骤1,定义绘制区域的画笔mPaintFullYello对象,用来绘制矩形区域;步骤2,定义mRectLeft,mRectRight,表示左边和右边圆角矩形的区域,是RectF类型的变量;步骤3,在onSizeChanged回调中获取屏幕宽高,根据屏幕宽度和矩形距离屏幕左边及右边的距离,来构造mRectLeft,mRectRight变量的范围;步骤4,在onDraw回调中,绘制mRectLeft,mRectRight区域。4.如权利要求1所述的截取音频控件的算法,其特征在于:所述内部频谱控件,具体包括:步骤1,定义绘制区域的画笔mPaintSpectrum对象,用来绘制频谱线条;步骤2,在onSizeChanged回调中mHeight为控件的高度;定义数值RECT_CENTER,表示线条高度的一半的像素值,则有:RECT_CENTER=(mHeight-AudioViewConfig.RECT_H...

【专利技术属性】
技术研发人员:孙征
申请(专利权)人:北京酷我科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1