<dependency> <groupId>com.shuyu</groupId> <artifactId>aduioRecord</artifactId> <version>1.0.5</version> <type>pom</type> </dependency>
compile 'com.shuyu:aduioRecord:1.0.5'
/** * 是否暂停 */ public void setPause(boolean pause)
//将播放器或者录制器设置进去即可生效 audioWave.setBaseRecorder(player); ···· /** * 三种颜色,不设置用默认的 */ public void setChangeColor(int color1, int color2, int color3) /** * 是否更具声音大小显示清晰度 */ public void setAlphaByVolume(boolean alphaByVolume)
if (player != null) { player.stop(); player.release(); player = null; } player = new MP3RadioStreamPlayer(); player.setUrlString(uri);//可以是本地uri或者网络URL player.setDelegate(this); int size = getScreenWidth(this) / dip2px(this, 1);//控件默认的间隔是1 player.setDataList(audioWave.getRecList(), size); audioWave.startView(); //可以设置循环播放
<declare-styleable name="waveView"> <attr name="waveColor" format="color" /> <attr name="waveOffset" format="dimension" /> <attr name="waveCount" format="dimension" /> </declare-styleable> audioWave.startView(); //开始绘制 audioWave.stopView(); //停止绘制
来至 AndroidMP3Recorder ,不过目前该作者已经停止维护。 该项目在此项目基础上增加了音频录制的权限判断和数据提取
··· mRecorder = new MP3Recorder(new File(filePath)); //控件默认的间隔是1dp int size = getScreenWidth(this) / dip2px(this, 1); //设置数据提取的list和最大数据存储数(一般就是控件的大小处于间隔) 这个list直接用AudioWaveView的lsit mRecorder.setDataList(audioWave.getRecList(), size); //错误回调 mRecorder.setErrorHandler(new Handler() { ··· /** * 获取真实的音量。 * * @return 真实音量 */ public int getRealVolume() /** * 获取相对音量。 超过最大值时取最大值。 * * @return 音量 */ public int getVolume()
··· audioPlayer = new AudioPlayer(this, new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case AudioPlayer.HANDLER_CUR_TIME://更新当前的时间 break; case AudioPlayer.HANDLER_COMPLETE://播放结束 break; case AudioPlayer.HANDLER_PREPARED://播放开始 break; case AudioPlayer.HANDLER_ERROR://播放错误 break; } } }); audioPlayer.playUrl(filePath);