1.参考了https://github.com/zhaolewei/MusicVisualizer
大神用的是录音显示,其实我只需要显示已有音乐的可视化,所以就借用了大神写的类自己改了一个demo(百度盘自取,可直接使用)也可以去看看大神的文章跟着改
链接:https://pan.baidu.com/s/1AtjPG3xG_orH_RVhyTI1tg
提取码:bzwe
复制这段内容后打开百度网盘手机App,操作更方便哦
2.一些小笔记
- 将demo里面这三个东西copy进自己的项目
- - 尤其重要记得把读写权限和麦克风权限打开
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25private 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里的代码
- 如果要调节频谱图的数量适应于你的控件请使用这个函数(注意此函数在一个控件内一个只需要调用一次)
复制代码
1
2audioView.setLump(audioView.getWidth(), audioView.getHeight());
该段代码在AudioView里面
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34/** * 设置柱体的数量(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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复