android - AudioFlinger 无法创建效果,状态 : -22

标签 android

请帮帮我,如何解决这个问题?

public class VisualizerCapture extends Activity implements Visualizer.OnDataCaptureListener
private Visualizer mVisualizer;


@Override
public void onCreate(Bundle savedInstanceState){
 super.onCreate(savedInstanceState);
    mVisualizer = new Visualizer(0);
    setupVisualizer();

private void setupVisualizer() {
    mVisualizer.setEnabled(false);
    mVisualizer.setCaptureSize(8);      //test
    mVisualizer.setDataCaptureListener(this,250,false,true);        
            Log.v("ABS","setupVisualizer" + mVisualizer.getEnabled());    //log

此代码抛出错误: 错误/AudioEffect(2393): set(): AudioFlinger 无法创建效果,状态:-22

那是在 xml 中

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

日志:

java.lang.RuntimeException:无法启动 Activity ComponentInfo{blabla}:java.lang.RuntimeException:无法初始化 Visualizer 引擎,错误:-4 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 在 android.app.ActivityThread.access$600(ActivityThread.java:123) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:4424) 在 java.lang.reflect.Method.invokeNative( native 方法) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 在 dalvik.system.NativeStart.main( native 方法) Caused by: java.lang.RuntimeException: Cannot initialize Visualizer engine, 错误: -4 在 android.media.audiofx.Visualizer.(Visualizer.java:182) 在 com.blablabeta.gui.VisualizerCapture.onCreate(EqVisualizerCaptureAudio.java:27) 在 android.app.Activity.performCreate(Activity.java:4465) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)

就这? 以及如何修复此错误?

最佳答案

在 session 0 上使用 Visualizer 时,您需要具有 MODIFY_AUDIO_SETTINGSRECORD_AUDIO 权限,但我猜您的应用具有这些权限因为否则你会得到一个 PERMISSION_DENIED 错误(-1 如果我没记错的话)。

状态 -22 应该是 BAD_VALUE。从问题中提供的信息来看,我并不完全清楚为什么会发生这种情况。除了您粘贴的那一行之外,logcat 输出中可能还有更多可用信息。您最终获得 BAD_VALUE 状态的潜在原因可能是,例如未找到效果,或者效果已插入效果链中。

关于android - AudioFlinger 无法创建效果,状态 : -22,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14603188/

相关文章:

android - 如何从DataSnapshot将数据获取到LiveData <List <Model >>

android - 如何正确居中 GridView?

java - 您可以通过按钮打开选项菜单吗?

android - 将我的应用程序与浏览器 android 集成

android - Android 上按 ABI 拆分 Assets

android - 如何在垂直 ScrollView 中显示图像列表?

android - 暂停/反转帧动画?

java - 当我单击 ListView 项目时,如何接收类对象?

java - 获得响应之前 Volley 的响应时间

Android 动态壁纸设置无法从 'configure...' 菜单加载