我是靠谱客的博主 优美荷花,最近开发中收集的这篇文章主要介绍Android 音频可视化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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 音频可视化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部