1. /**
  2. * 频谱的实现
  3. */
  4. private static final String TAG = "AudioFxActivity_1";
  5. private static final float VISUALIZER_HEIGHT_DIP = 160f;
  6. public static Visualizer mVisualizer;
  7. private LinearLayout mLinearLayout;
  8. private VisualizerView mVisualizerView;
  9. private MediaPlayer mp;// MediaPlayer对象
  10. private boolean isNext;
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState)
  13. {
  14. super.onCreate(savedInstanceState);
  15. requestWindowFeature(Window.FEATURE_NO_TITLE);
  16. setContentView(R.layout.playingmusic);
  17. Intent intent = this.getIntent();// 获取列表的Intent对象
  18. Bundle bundle = intent.getExtras();// Bundle存取数据,那么在播放界面提取数据喽
  19. _ids = bundle.getIntArray("_ids");// 歌名数组的ID,用来临时保存音乐的ID
  20. position = bundle.getInt("position");// 音乐播放位置
  21. _titles = bundle.getStringArray("_titles");// 音乐播放标题
  22. _artists = bundle.getStringArray("_artists");// 传过来的艺术家,歌名一个都不允许遗漏,否则空指针是必须的
  23. name = (TextView) findViewById(R.id.musicname);// 歌名
  24. // artist = (TextView) findViewById(R.id.singer);// 歌手,即艺术家
  25. lrcText = (TextView) findViewById(R.id.musiclrc);
  26. // playtime = (TextView) findViewById(R.id.playtime);// 左边正在播放时间
  27. // durationTime = (TextView) findViewById(R.id.duration);// 总时间,要转换的
  28. // albumpic = (ImageView) findViewById(R.id.albumPic);//专辑
  29. gesLib = GestureLibraries.fromRawResource(this, R.raw.gestures);
  30. gesLib.load();
  31. gestureoverlay1 = (GestureOverlayView) this.findViewById(R.id.gestures1);
  32. MyOnGesturePerformedListener gpl = new MyOnGesturePerformedListener();
  33. gestureoverlay1.addOnGesturePerformedListener(gpl);
  34. // 频谱功能初始化
  35. mLinearLayout = (LinearLayout) findViewById(R.id.layout_audiofx);
  36. //Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, ""+_ids[position]);
  37. //mp = MediaPlayer.create(this, R.raw.ki);
  38. }
  39. private void setupVisualizerFxAndUI(int audioID)
  40. {
  41. mVisualizerView = new VisualizerView(this);
  42. mVisualizerView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, (int) (VISUALIZER_HEIGHT_DIP * getResources().getDisplayMetrics().density)));
  43. mLinearLayout.addView(mVisualizerView);
  44. final int maxCR = Visualizer.getMaxCaptureRate();
  45. mVisualizer = new Visualizer(audioID);
  46. mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
  47. mVisualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener()
  48. {
  49. public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate)
  50. {
  51. mVisualizerView.updateVisualizer(bytes);
  52. }
  53. public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate)
  54. {
  55. mVisualizerView.updateVisualizer(fft);
  56. }
  57. }, maxCR / 2, false, true);
  58. mVisualizer.setEnabled(true);
  59. }

01-09 15:17:38.911: E/AndroidRuntime(933): Caused by: java.lang.IllegalStateException: setCaptureSize() called in wrong state: 2
01-09 15:17:38.911: E/AndroidRuntime(933):  at android.media.audiofx.Visualizer.setCaptureSize(Visualizer.java:279)
一直出现这个错误,不知道是在这个activity的哪个地方添加mvisualizer.setEnabled(false)

求大神指点!

转载于:https://blog.51cto.com/6384443/1111881

关于visualizer的setEnabled()方法何时进行设置成false?相关推荐

  1. Qt窗口设置成透明色方法(窗口设置成透明色结果显示成黑色的解决办法)

    在Qt界面背景设置中,有时候想把窗口背景设置成透明色,结果界面显示成黑色的解决办法如下(亲测有效): ipLinkWidget->setWindowFlag(Qt::FramelessWindo ...

  2. setEnabled():设置成true时,相当于激活了按钮,按钮的状态不再是死的,

    2 package day01;//我声明了一个包叫做day01()public class HelloWorld {//声明类(房子)public static void main(String[] ...

  3. 解决ThinkPHP3.2 将Debug 关闭 设置为False 报页面错误 请稍后再试

    1.最近系统要上线,就把Index.php中的debug 关闭 设置成false,结果出现如下的错误 2.修改config.php文件,加入   'SHOW_ERROR_MSG' => TRUE ...

  4. linux 下 设置 MySQL8 表名大小写不敏感方法,解决设置后无法启动 MySQL 服务的问题

    linux 下 设置 MySQL8 表名大小写不敏感方法,解决设置后无法启动 MySQL 服务的问题 参考文章: (1)linux 下 设置 MySQL8 表名大小写不敏感方法,解决设置后无法启动 M ...

  5. linux 把根目录设置成777权限的补救方法

    Linux把根目录设置成777权限的补救方法 前两天蛋蛋手就那么一抖啊,一不小心就把根目录权限设置成777了. 本想执行chmod -R 777 ./* 结果一不小心少按了一个点,变成了chmod - ...

  6. 【错误记录】Groovy 闭包使用报错 ( 闭包中不能直接使用外部对象的方法 | 需要先设置 delegate 代理 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在 Groovy 中的 Closure 闭包中 , 直接调用外部对象的方法 , 会报错 ; class Test {def fun() {print ...

  7. 将普通路由器设置成微信连WiFi路由器的方法

    本文介绍将家用普通路由器设置成微信连WiFi路由器的方法. 1. 登录路由器后台,找到无线网络的SSID名称和密码的地方.将SSID和密码分别设置为: SSID: FreeWiFi 密码: WX123 ...

  8. Spring AOP根据JdbcTemplate方法名动态设置数据源

    2019独角兽企业重金招聘Python工程师标准>>> 说明:现在的场景是,采用数据库(Mysql)复制(binlog)的方式在两台不同服务器部署并配置主从(Master-Slave ...

  9. 设置中文linux输入ubuntu,Linux_ubuntu怎么设置成中文?ubuntu中文设置图文方法,  很多朋友安装ubuntu后,发 - phpStudy...

    ubuntu怎么设置成中文?ubuntu中文设置图文方法 很多朋友安装ubuntu后,发现都是英文,看不懂要怎么办?其实ubuntu是可以设置成中文的,下文小编就为大家带来ubuntu中文的设置方法, ...

最新文章

  1. JavaScript继承的多种方式和优缺点
  2. Go 的 flag 包可以解析命令行的参数
  3. 数据挖掘建模之常见概率分布总结
  4. 再谈RDD、DataFrame、DataSet关系以及相互转换(JAVA API)
  5. nodejs window下安装与配置淘宝镜像
  6. java数据结构- - - -栈
  7. 自动化测试C语言程序,自动化测试程序之一自定义键盘的模拟测试程序(C语言)...
  8. java异常中的finally(一)
  9. Java的注解和反射
  10. gdb调试Python进程
  11. 【hdu1018】Big Number(求n!的位数----斯大林公式/log函数)
  12. IT资源书籍999999999本
  13. 软件库网站源码+附手机版 带多套模板 图文教程
  14. asp.net 注册、卸载iis,iis重启命令
  15. [渝粤教育] 西南科技大学 翻译 在线考试复习资料
  16. 微服务项目架构演变过程
  17. Linux下几种定时器的使用
  18. Android 9 Pie
  19. 游戏行业被黑客攻击勒索怎么办?
  20. druid监控无法关闭(坑),及处理方式

热门文章

  1. 【译】五个ES6功能,让你编写代码更容易
  2. 一个母婴电子商务网站贝贝网的大数据平台及机器学习实践【转】
  3. 浅谈Generator和Promise原理及实现
  4. 洛谷——P2626 斐波那契数列(升级版)矩阵
  5. 文本过滤--awk 3
  6. statusStrip 状态条 toolStripStatusLabel 居右显示
  7. javascript 队列
  8. SSM中(Spring-SpringMVC-Mybatis)(一:概念)
  9. [WS]使用Axis发布简单的Web服务
  10. 提高oracle查询效率