你的位置:首页 > 软件开发 > 操作系统 > Android进阶——声波振幅显示

Android进阶——声波振幅显示

发布时间:2015-12-20 22:00:04
最近博主想做一个app,中间有一个是录音的功能。于是博主想把UI做的好看一些,想仿照微信或者QQ语音输入时,能够随着声音的大小显示声波振幅。于是查找了一些资料,现在把这个功能的Demo分享给大家,以后也会把更多的项目学习到的知识分享给大家。其实这个功能主要是依靠MediaReco ...

Android进阶——声波振幅显示

最近博主想做一个app,中间有一个是录音的功能。于是博主想把UI做的好看一些,想仿照微信或者QQ语音输入时,能够随着声音的大小显示声波振幅。于是查找了一些资料,现在把这个功能的Demo分享给大家,以后也会把更多的项目学习到的知识分享给大家。

其实这个功能主要是依靠MediaRecorder的getMaxAmplitude()方法来获得声音的振幅,然后依据计算公式分贝的计算公式K=20lg(Vo/Vi) Vo当前的振幅值,Vi基准值为600来获得分贝数然后在根据分贝来显示ImageView上的不同图片。这样就实现了声波振幅显示了。

下面列出主要的函数,后面会给出录音显示声波振幅的Demo下载链接:

	public RecordDialog(Context context){		this.context=context;		dialog_view=LayoutInflater.from(context).inflate(R.layout.dialog_sound, null);				//初始化振幅图片		progressImg[0]=context.getResources().getDrawable(R.drawable.mic_1);		progressImg[1]=context.getResources().getDrawable(R.drawable.mic_2);		progressImg[2]=context.getResources().getDrawable(R.drawable.mic_3);		progressImg[3]=context.getResources().getDrawable(R.drawable.mic_4);		progressImg[4]=context.getResources().getDrawable(R.drawable.mic_5);		progressImg[5]=context.getResources().getDrawable(R.drawable.mic_6);		progressImg[6]=context.getResources().getDrawable(R.drawable.mic_7);				dialog=new AlertDialog.Builder(context).setView(dialog_view).show();//		dialog.cancel();				progress=(ImageView) dialog_view.findViewById(R.id.sound_progress);		btn_cancel=(ImageView) dialog_view.findViewById(R.id.cancel);		btn_submit=(TextView) dialog_view.findViewById(R.id.submit);		mic_icon=(ImageView) dialog.findViewById(R.id.mic);		dialog_title=(TextView) dialog.findViewById(R.id.title);		txt_msg=(TextView) dialog.findViewById(R.id.msg);				btn_cancel.setOnClickListener(onCancel);		btn_submit.setOnClickListener(onSubmit);		}
古老读心术:http://shouji.baidu.com/game/item?docid=8425923&from=as

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Android进阶——声波振幅显示

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录