概述
1.参考了https://github.com/zhaolewei/MusicVisualizer
大神用的是录音显示,其实我只需要显示已有音乐的可视化,所以就借用了大神写的类自己改了一个demo(百度盘自取,可直接使用)也可以去看看大神的文章跟着改
链接:https://pan.baidu.com/s/1AtjPG3xG_orH_RVhyTI1tg
提取码:bzwe
复制这段内容后打开百度网盘手机App,操作更方便哦
2.一些小笔记
- 将demo里面这三个东西copy进自己的项目
- - 尤其重要记得把读写权限和麦克风权限打开
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.MODIFY_AUDIO_SETTINGS
};
public static void verifyStoragePermissions(Activity activity) {
// Check if we have read or write permission
int writePermission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int readPermission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE);
int hasAudioPermission = ActivityCompat.checkSelfPermission(activity, Manifest.permission.RECORD_AUDIO);
if (writePermission != PackageManager.PERMISSION_GRANTED || readPermission != PackageManager.PERMISSION_GRANTED ||hasAudioPermission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user
ActivityCompat.requestPermissions(
activity,
PERMISSIONS_STORAGE,
REQUEST_EXTERNAL_STORAGE
);
}
}
- 使用参考mainactivity里的代码
- 如果要调节频谱图的数量适应于你的控件请使用这个函数(注意此函数在一个控件内一个只需要调用一次)
audioView.setLump(audioView.getWidth(), audioView.getHeight());
该段代码在AudioView里面
/**
* 设置柱体的数量(liuliu)
*
* @param width:当前控件的宽度
* higeht:当前控件的高度
*/
public void setLump(int width, int hight) {
System.out.println("width:" + width + " hight:" + hight);
int allwidth = LUMP_COUNT * LUMP_SIZE;
//LUMP_MAX_HEIGHT = (int) ((hight/2)*0.9);
LUMP_MAX_HEIGHT = hight;
SCALE = LUMP_MAX_HEIGHT / LUMP_COUNT;
if (allwidth > width){
while (allwidth > width) {
LUMP_COUNT = (int) (LUMP_COUNT * 0.9);
// LUMP_MAX_HEIGHT = (int) (LUMP_MAX_HEIGHT * 0.9);
allwidth = LUMP_COUNT * LUMP_SIZE;
}
while (allwidth < width) {
LUMP_COUNT = (int) (LUMP_COUNT * 1.1);
// LUMP_MAX_HEIGHT = (int) (LUMP_MAX_HEIGHT * 1.1);
allwidth = LUMP_COUNT * LUMP_SIZE;
}
}else if(allwidth<width){
while (allwidth < width) {
LUMP_COUNT = (int) (LUMP_COUNT * 1.1);
// LUMP_MAX_HEIGHT = (int) (LUMP_MAX_HEIGHT * 1.1);
allwidth = LUMP_COUNT * LUMP_SIZE;
}
}
}
-设置要柱状图还是曲线图,直接在AudioView里面修改
- 最后效果
最后
以上就是优美荷花为你收集整理的Android 音频可视化的全部内容,希望文章能够帮你解决Android 音频可视化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复