【问题标题】:Android Visualizer class throwing runtime exceptionAndroid Visualizer 类抛出运行时异常
【发布时间】:2011-10-21 17:50:00
【问题描述】:

我在我的演示应用程序中使用 AndroidFX Visualizer 类来读取 FFT,但是当我尝试创建该类的对象时,它会抛出运行时异常 (java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -1)。 Player 类是我用于播放控制的自定义类,并且使用相同的 Player 类,我已经实现了均衡器类,并且工作正常。我需要在清单文件中添加任何权限吗?

Player mediaPlayer = Player.GetInstance();
    mediaPlayer.LoadFile("song.mp3");
    mediaPlayer.Play();
    try{
    visual = new Visualizer(mediaPlayer.GetAudioSessionID()); // this line causing Exception 
    visual.setEnabled(true);
    visual.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
    }
    catch(Exception ex)
    {
        Log.e("Visual Ex", ex.getMessage());
    }

【问题讨论】:

标签: android audio visualization


【解决方案1】:

那是由于我的愚蠢错误,该功能需要<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission> 许可。谢谢

【讨论】:

  • 另外,如果使用音频源 0,如果您未将 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 设置为 documented,则会引发相同的错误。
  • 堆栈跟踪应该有这样的状态
【解决方案2】:

我知道这是一个很晚的答案,但我也遇到了这个问题,我想分享我的经验。

首先,正如上面提到的答案,权限

<uses-permission android:name="android.permission.RECORD_AUDIO"/>

并且,如果使用音频源 0 (Visualizer(0); //system mix),

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

需要。将权限添加到我的应用程序并再次安装(新编译的)应用程序后,我的应用程序仍然崩溃。我发现,必须重新启动设备才能毫无例外地使用 Visualizer(无论出于何种原因)。因此,如果您开发应用并遇到此异常,可能需要在为应用添加权限后重新启动

【讨论】:

  • 我一直在寻找答案,重新启动我的设备解决了这个问题!谢谢@Fruchtzwerg
  • 谢谢Fruchtzwerg!重新启动我的设备也解决了这个问题。绝不应该这样做,我相信这是android的一个错误,特别是在MODIFY_AUDIO_SETTINGS权限附近。
猜你喜欢
  • 2021-09-08
  • 1970-01-01
  • 2012-08-21
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多