6

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

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

此代码抛出错误:ERROR/AudioEffect(2393): set(): AudioFlinger could not create effect, status: -22

那是在xml中

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

日志猫:

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

这就对了?以及如何解决这个错误?

4

3 回答 3

5

使用Visualizeron session 0 时,您需要拥有权限MODIFY_AUDIO_SETTINGSRECORD_AUDIO但我猜您的应用程序具有这些权限,否则您会收到PERMISSION_DENIED错误消息(-1如果我没记错的话)。

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

于 2013-01-30T12:13:36.987 回答
1

问题消失了,然后我在真机上测试了我的应用程序。模拟器有问题。

于 2013-02-01T08:01:55.903 回答
0

如果没有记错,您还必须向用户请求权限?我有同样的问题添加

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

只是所需内容的一部分。看看这里:无法在 Android 中请求 RECORD_AUDIO 权限

几乎可以提供您需要的一切。

于 2021-08-27T13:55:15.047 回答