我在我的应用程序的主要活动中添加了一些代码用于连续生成和回放正弦波,并创建了一个PresetReverb对象以在正弦波上测试它.但是,每次我启动它时,应用程序崩溃,它会在logcat中生成:
08-08 14:36:10.566: E/AudioEffect(19466): set(): audioflinger Could not create effect,status: -1
08-08 14:36:10.566: E/AudioEffects-JNI(19466): AudioEffect initCheck Failed -1
08-08 14:36:10.566: E/AudioEffect-JAVA(19466): Error code -1 when initializing AudioEffect.
08-08 14:36:10.566: W/dalvikvm(19466): threadid=11: thread exiting with uncaught exception (group=0x40ac2228)
08-08 14:36:10.576: E/AndroidRuntime(19466): FATAL EXCEPTION: Thread-11436
08-08 14:36:10.576: E/AndroidRuntime(19466): java.lang.RuntimeException: Cannot initialize effect engine for type: 47382d60-ddd8-11db-bf3a-0002a5d5c51bError: -1
08-08 14:36:10.576: E/AndroidRuntime(19466):    at android.media.audiofx.AudioEffect.<init>(AudioEffect.java:387)
08-08 14:36:10.576: E/AndroidRuntime(19466):    at android.media.audiofx.PresetReverb.<init>(PresetReverb.java:136)
08-08 14:36:10.576: E/AndroidRuntime(19466):    at me.kevinossia.mystuff.MainScreen$2.run(MainScreen.java:47)

以下是活动的代码:

package me.kevinossia.mystuff;


import me.kevinossia.mystuff.tutorial.R;
import android.app.Activity;
import android.content.Intent;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.media.audiofx.PresetReverb;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainScreen extends Activity
{
Thread t;
int sr = 44100;
boolean isRunning=true;
@Override
public void onCreate(Bundle savedInstanceState)
{

    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainscreen);

    Button goBack = (Button) findViewById(R.id.back);

    goBack.setonClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {
            Intent goBack = new Intent(getApplicationContext(),HomeScreen.class);
            startActivity(goBack);
        }
    });

    t = new Thread()
    {
        public void run()
        {
            setPriority(Thread.MAX_PRIORITY);
            int buffsize = AudioTrack.getMinBufferSize(sr,AudioFormat.CHANNEL_OUT_MONO,AudioFormat.ENCODING_PCM_16BIT);

            AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,sr,AudioFormat.ENCODING_PCM_16BIT,buffsize,AudioTrack.MODE_STREAM);

            PresetReverb reverb = new PresetReverb(0,0);

            audioTrack.attachAuxEffect(reverb.getId());
            reverb.setPreset(PresetReverb.PRESET_LARGEROOM);
            reverb.setEnabled(true);
            audioTrack.setAuxEffectSendLevel(1.0f);

            short samples[] = new short[buffsize];
            int amp = 32767;
            double twopi = 2*Math.PI;
            double fr = 262.f;
            double ph = 0.0;

            audioTrack.play();

            while(isRunning)
            {
                fr = 262;

                for(int i=0; i < buffsize; i++)
                {
                    samples[i] = (short) (amP*Math.sin(ph));
                    ph += twopi*fr/sr;
                }
                audioTrack.write(samples,buffsize);
            }
            audioTrack.stop();
            audioTrack.release();

        }
    };
    t.start();

}
@Override
public void onPause()
{
    super.onPause();
    isRunning = false;
    try
    {
        t.join();
    } catch (InterruptedException e)
    {
        e.printstacktrace();
    }
    t = null;
}


}

显然创建PresetReverb对象的行存在问题……但我无法弄清楚原因.究竟是什么导致我的应用程序崩溃?

解决方法

尝试添加
<uses-permission android:name="android.permission.MODIFY_AUdio_SETTINGS"/>

到您的清单文件中的权限列表.

Android应用程序不断崩溃audioEffect错误代码-1的更多相关文章

  1. ios – SecItemAdd返回OSStatus代码-50

    谢谢,能够.解决方法您不能对[keychainsetobject:forKey:]使用任意键.以下将有效:Appledocumentation充满了关于此的信息.

  2. ios – 崩溃错误代码:-1001错误:NSURLErrorTimedOut

    我遇到以下事故:崩溃只出现在iOS9上,没有在iOS8上,但这可能只是巧合.我也通过Crittercism面包屑看到这个:我也使用了后台提取,它打到了网络层.任何想法为什么这是打嗝?

  3. 错误代码-8969,-12909,同时使用视频工具箱解码iOS 8中的h264

    或者我应该检查其他东西?

  4. swift学习之错误代码 EXC_BCD

    刚刚看到了可选类型。当执行“强制解析可选”时,问题就出来了,无法完成对一个没有赋值的变量进行强制解析,顺理成章的就会出现EXC_BCD错误。注意:1,在bject_c中,nil表示的是一个指向不存在的对象的指针。而在swift中,表示空关键字为nil,它没有定义其他含义。多读几次吧)3,nil不能用于非可选的常量或者变量,如果你的代码中可能会出现没有值的情况,请务必声明其为可选类型。

  5. 无法修复Android Proguard返回错误代码1错误

    当我尝试在我的Android应用程序中使用proguard时只需添加到我的project.properties文件,APK导出失败并显示消息Proguard返回错误代码1这是我的project.properties文件这是错误堆栈:解决方法将这些行添加到proguard配置文件(proguard-android.txt)见ProguardTroubleshooting请注意,如果您使用您的配置文件

  6. Android应用程序不断崩溃audioEffect错误代码-1

    我在我的应用程序的主要活动中添加了一些代码用于连续生成和回放正弦波,并创建了一个PresetReverb对象以在正弦波上测试它.但是,每次我启动它时,应用程序崩溃,它会在logcat中生成:以下是活动的代码:显然创建PresetReverb对象的行存在问题……但我无法弄清楚原因.究竟是什么导致我的应用程序崩溃?解决方法尝试添加到您的清单文件中的权限列表.

  7. android – 谷歌玩游戏服务错误代码400

    >去吧只需复制/粘贴“应用程序签名证书”“SHA-1证书指纹”–而不是“上载证书”“SHA-1证书指纹”,它是您的密钥库中的一个,位于APIID客户端OAuth2.0中.这将做你的工作!截至目前,谷歌玩游戏已不再在本地连接.但是当它被导入谷歌游戏商店时它已成功连接.注意:上图是从GitHub开放问题中获取的.希望这可以帮助!!

  8. android – BluetoothGattCallback – onConnectionStateChange返回status22

    我正在开发一个Android应用程序来与蓝牙模块双模式接口.由于模块是双模式,我遇到了here所描述的相同问题.但是我尝试做一个变通方法,因为在第一次连接之后,回调onConnectionStateChange()返回状态133.总是在MainActivity的onStop()方法中,我关闭BluetoothGatt对象以释放资源.进一步在bluetooth.close()之前添加了bluetoo

  9. Android应用内结算错误:无法购买此商品. (错误代码:IAB-DPTL)

    (产生删除当前发布的应用程序的风险?)我没有看到我遗漏的内容,而且我无法在网上找到有关此错误代码的任何信息.我做错了什么?解决方法好的,我找到了解决方案!该bug直接由我在productId期间关联的“payloadContent”引起购买请求.我曾经将我的可购买项目转换为JSON并将其作为开发人员有效内容.(认为对恢复阶段有用……

  10. android – 使用ContentProvider时出现“错误代码5:数据库被锁定”

    2)为什么这不会出现在等效的API2.3.3仿真器上?具有讽刺意味的是,我的调试日志记录导致错误并没有丢失.如果我无法解决它,我的下一步是将日志消息捆绑在一个列表中,并一次一批地将它们转储出来.这是通过代码到错误的路径:活动:内容提供商:DatabaseHelper:解决方法您是否可能使用多个sqliteDatabase实例访问数据库?您只能与数据库建立一个连接,否则您将收到您遇到的错误.sqliteDatabase本身是线程安全的,因此您可以同时访问它.

随机推荐

  1. bluetooth-lowenergy – Altbeacon库无法在Android 5.0上运行

    昨天我在Nexus4上获得了Android5.0的更新,并且altbeacon库停止了检测信标.似乎在监视和测距时,didEnterRegion和didRangeBeaconsInRegion都没有被调用.即使RadiusNetworks的Locate应用程序现在表现不同,一旦检测到信标的值,它们就不再得到更新,并且通常看起来好像信标超出了范围.我注意到的一点是,现在在logcat中出现以下行“B

  2. android – react-native动态更改响应者

    我正在使用react-native进行Android开发.我有一个视图,如果用户长按,我想显示一个可以拖动的动画视图.我可以使用PanResponder实现这一点,它工作正常.但我想要做的是当用户长按时,用户应该能够继续相同的触摸/按下并拖动新显示的Animated.View.如果您熟悉Google云端硬盘应用,则它具有类似的功能.当用户长按列表中的任何项目时,它会显示可拖动的项目.用户可以直接拖

  3. android – 是否有可能通过使用与最初使用的证书不同的证书对其进行签名来发布更新的应用程序

    是否可以通过使用与最初使用的证书不同的证书进行签名来发布Android应用程序的更新?我知道当我们尝试将这样的构建上传到市场时,它通常会给出错误消息.但有没有任何出路,比如将其标记为主要版本,指定市场中的某个地方?解决方法不,你不能这样做.证书是一种工具,可确保您是首次上传应用程序的人.所以总是备份密钥库!

  4. 如何检测Android中是否存在麦克风?

    ..所以我想在让用户访问语音输入功能之前检测麦克风是否存在.如何检测设备上是否有麦克风.谢谢.解决方法AndroidAPI参考:hasSystemFeature

  5. Android – 调用GONE然后VISIBLE使视图显示在错误的位置

    我有两个视图,A和B,视图A在视图B上方.当我以编程方式将视图A设置为GONE时,它将消失,并且它正下方的视图将转到视图A的位置.但是,当我再次将相同的视图设置为VISIBLE时,它会在视图B上显示.我不希望这样.我希望视图B回到原来的位置,这是我认为会发生的事情.我怎样才能做到这一点?编辑–代码}这里是XML:解决方法您可以尝试将两个视图放在RelativeLayout中并相对于彼此设置它们的位置.

  6. android – 获得一首歌的流派

    我如何阅读与歌曲相关的流派?我可以读这首歌,但是如何抓住这首歌的流派,它存放在哪里?解决方法检查此代码:

  7. android – 使用textShadow折叠工具栏

    我有一个折叠工具栏的问题,在展开状态我想在文本下面有一个模糊的阴影,我使用这段代码:用:我可以更改textColor,它可以工作,但阴影不起作用.我为阴影尝试了很多不同的值.是否可以为折叠文本投射阴影?

  8. android – 重用arm共享库

    我已经建立了armarm共享库.我有兴趣重用一个函数.我想调用该函数并获得返回值.有可能做这样的事吗?我没有任何头文件.我试过这个Android.mk,我把libtest.so放在/jni和/libs/armeabi,/lib/armeabi中.此时我的cpp文件编译,但现在是什么?我从objdump知道它的名字编辑:我试图用这个android.mk从hello-jni示例中添加prebuild库:它工作,但libtest.so相同的代码显示以下错误(启动时)libtest.so存在于libhello-j

  9. android – 为NumberPicker捕获键盘’Done’

    我有一个AlertDialog只有一些文本,一个NumberPicker,一个OK和一个取消.(我知道,这个对话框还没有做它应该保留暂停和恢复状态的事情.)我想在软键盘或其他IME上执行“完成”操作来关闭对话框,就像按下了“OK”一样,因为只有一个小部件可以编辑.看起来处理IME“Done”的最佳方法通常是在TextView上使用setonEditorActionListener.但我没有任何Te

  10. android – 想要在调用WebChromeClient#onCreateWindow时知道目标URL

    当我点击一个带有target=“_blank”属性的超链接时,会调用WebChromeClient#onCreateWindow,但我找不到新的窗口将打开的新方法?主页url是我唯一能知道的东西?我想根据目标网址更改应用行为.任何帮助表示赞赏,谢谢!

返回
顶部