Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Visualizer错误仅适用于Android 6.0_Android_Android Mediaplayer_Visualizer - Fatal编程技术网

Android Visualizer错误仅适用于Android 6.0

Android Visualizer错误仅适用于Android 6.0,android,android-mediaplayer,visualizer,Android,Android Mediaplayer,Visualizer,我发现了一个与Visualizer相关的问题,它只发生在Android 6.0设备中。我真的不知道为什么会这样,所以任何形式的帮助都将不胜感激。以下是错误堆栈: AudioEffect: set(): AudioFlinger could not create effect, status: -1 visualizers-JNI: Visualizer initCheck failed -3 Visualizer-JAVA: Error code -3 when initializing Vis

我发现了一个与Visualizer相关的问题,它只发生在Android 6.0设备中。我真的不知道为什么会这样,所以任何形式的帮助都将不胜感激。以下是错误堆栈:

AudioEffect: set(): AudioFlinger could not create effect, status: -1
visualizers-JNI: Visualizer initCheck failed -3
Visualizer-JAVA: Error code -3 when initializing Visualizer.
java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -3
System.err: at android.media.audiofx.Visualizer.<init>(Visualizer.java:218)
System.err:     at com.xxx.xxxx.customviews.visualizer.VisualizerView.link(VisualizerView.java:101)

任何帮助都将不胜感激。提前感谢=)

您能否尝试将以下内容添加到清单文件中的权限列表中:

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


可能底层组件需要某些权限,这些权限在6.0中不会自动授予。转到此应用程序的AppInfo;导航到权限;确保已授予此应用程序请求的所有权限。

确保您在清单中具有可视化工具所需的权限


由于此权限是“危险的”,您还需要要求用户在运行时授予此权限。

这让我疯狂了好几个星期……我一直在关注我的
Visualizer
代码,其中6.0权限系统是问题所在。我已经在4.2.2、5.0和6.0.1的真实设备上对此进行了测试。我仍然不知道为什么当我在真实设备上测试应用程序时,权限对话框从未出现。此外,手动打开
麦克风
权限解决了应用程序信息设置中的问题

if (ActivityCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED)
                 {
                     requestPermissions(new String[]{android.Manifest.permission.RECORD_AUDIO}, 1);
        }

这是正确的答案。我还不熟悉新的许可制度。谢谢=)另外,请参考developer.android.com中的文档“在运行时请求权限”,以了解如何在M中处理权限。这就是我所做的。再次感谢=)如何“转到AppInfo?”@JellicleCat:长按应用程序图标,上下文菜单“应用程序信息”和“卸载”应弹出
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED)
                 {
                     requestPermissions(new String[]{android.Manifest.permission.RECORD_AUDIO}, 1);
        }