【问题标题】:AndEngine NullpointerException when creating soundAndEngine NullpointerException 创建声音时
【发布时间】:2023-03-27 20:55:01
【问题描述】:

快速提问: 我有这个代码:

public EngineOptions onCreateEngineOptions() {
    instance = this;

    mCamera = new org.andengine.engine.camera.Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);

    EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), mCamera);
    engineOptions.getAudioOptions().setNeedsSound(true);
    //engineOptions.getAudioOptions().setNeedsMusic(true);


    return engineOptions;

}

protected void onCreateResources() {





    SoundFactory.setAssetBasePath("mfx/");



    try {
        this.testSound = SoundFactory.createSoundFromAsset(this.mEngine.getSoundManager(), this, "explosion.ogg");
    } catch (final IOException e) {
        Debug.e(e);
    }
}

我终于在另一个将此活动作为字段的课程上播放它:

    activity.mCurrentScene.registerTouchArea(image);
    activity.mCurrentScene.setOnAreaTouchListener(new IOnAreaTouchListener() {

        @Override
        public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
                ITouchArea pTouchArea, float pTouchAreaLocalX,
                float pTouchAreaLocalY) {
            Zancudo.this.activity.testSound.play();
            return false;
        }
    });

任何想法为什么我得到一个空指针异常?

谢谢!

【问题讨论】:

    标签: android nullpointerexception andengine audio


    【解决方案1】:

    对于您正在使用的播放声音,如下所示

    Zancudo.this.activity.testSound.play();
    

    这看起来像是问题,因为这里的活动对象没有在 Zancudo 类中实例化。

    要访问 testSound,您需要获取 Zancudo 活动的实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-12
      • 2016-08-29
      • 2011-11-25
      • 1970-01-01
      相关资源
      最近更新 更多