在类扩展片段活动android中加载声音池

在类扩展片段活动android中加载声音池,android,android-viewpager,soundpool,Android,Android Viewpager,Soundpool,我正在开发一个android应用程序。我的类扩展了fragmentactivity。我正在使用soundpool,使用asyc将声音加载到soundpool。 我在类的oncreate中调用async,并在onpagechagelistner中播放声音。当我运行应用程序时,我得到空指针异常 请查看下面的my onpagechangelistner和Async _mViewPager.setOnPageChangeListener(new OnPageChangeListener()

我正在开发一个android应用程序。我的类扩展了fragmentactivity。我正在使用soundpool,使用asyc将声音加载到soundpool。
我在类的oncreate中调用async,并在onpagechagelistner中播放声音。当我运行应用程序时,我得到空指针异常

请查看下面的my onpagechangelistner和Async

_mViewPager.setOnPageChangeListener(new OnPageChangeListener()  
    {
        public void onPageSelected(int page)  
        {
            if(page==0)
            {
                soundPool.play(1, streamVolume, streamVolume, 1, 0, 1f);
            }
            else if(page==1)
            {
                soundPool.play(2, streamVolume, streamVolume, 1, 0, 1f);
            }
            else if(page==2)
            {
                soundPool.play(3, streamVolume, streamVolume, 1, 0, 1f);
            }
     }
protected class MainSoundsforalphabetsleftout extends AsyncTask<Context, Integer, Boolean>
 {
    boolean result = false;
   @Override
    protected Boolean doInBackground(Context... params) 
    {
        Log.e("inside","doin bg");
        soundPoolMapForAlphabetsleftout.put(1, soundPoolForAlphabetsleftout.load(AlphaPager.this, R.raw.tellme, 1));
        soundPoolMapForAlphabetsleftout.put(2, soundPoolForAlphabetsleftout.load(AlphaPager.this, R.raw.okay, 1));
        soundPoolForAlphabetsleftout.setOnLoadCompleteListener(new OnLoadCompleteListener() {

            public void onLoadComplete(SoundPool soundPool, int sampleId, int status) 
            {
                globe.setSoundPoolForalphabetsleftout(soundPoolForAlphabetsleftout);
            }
        });
        return true;
    }

    @Override
    protected void onPostExecute( Boolean result ) 
    {
        super.onPostExecute(result);
                    Log.e("inside","postexecute of left out alpha");        
                    soundPoolleftout = globe.getSoundPoolForalphabetsleftout();
    }

    @Override
    protected void onPreExecute() 
    {
        super.onPreExecute();
                Log.e("inside","preexecute of left out alpha");         
            }

    @Override
    protected void onProgressUpdate(Integer... values) 
    {
        super.onProgressUpdate(values);
    }
           }
\u mViewPager.setOnPageChangeListener(新的OnPageChangeListener()
{
已选择页面上的公共无效(整页)
{
如果(第==0页)
{
声音池。播放(1,streamVolume,streamVolume,1,0,1f);
}
否则如果(第==1页)
{
声音池。播放(2,流音量,流音量,1,0,1f);
}
否则如果(第==2页)
{
声音池。播放(3,streamVolume,streamVolume,1,0,1f);
}
}
受保护类MainSoundsforalphabetsleftout扩展异步任务
{
布尔结果=假;
@凌驾
受保护的布尔doInBackground(上下文…参数)
{
Log.e(“内部”,“内部边界”);
soundPoolMapForAlphabetsleftout.put(1,soundPoolForAlphabetsleftout.load(AlphaPager.this,R.raw.tellme,1));
soundPoolMapForAlphabetsleftout.put(2,soundPoolForAlphabetsleftout.load(AlphaPager.this,R.raw.ok,1));
soundPoolForAlphabetsleftout.setOnLoadCompleteListener(新的OnLoadCompleteListener(){
public void onLoadComplete(声音池声音池,int-sampleId,int-status)
{
globe.setSoundPoolForalphabetsleftout(soundPoolForAlphabetsleftout);
}
});
返回true;
}
@凌驾
受保护的void onPostExecute(布尔结果)
{
super.onPostExecute(结果);
Log.e(“内部”,“遗漏alpha的执行后”);
soundPoolleftout=globe.getSoundPoolForalphabetsleftout();
}
@凌驾
受保护的void onPreExecute()
{
super.onPreExecute();
Log.e(“内部”,“预执行遗漏的alpha”);
}
@凌驾
受保护的void onProgressUpdate(整型…值)
{
super.onProgressUpdate(值);
}
}
请帮帮我。从两天开始做这件事。

谢谢!

首先,向我们展示stacktrace;它将显示您在代码中的哪一行获得空指针,以及在此之前它在做什么

另外,显示您在何处以及如何初始化声音池。它是一个单例类还是在活动中声明的?我使用以下

private static SoundManager _instance = null;
private SoundPool mSoundPool;
private HashMap<Integer, Integer> mSoundPoolMap;
private AudioManager  mAudioManager;
private Context mContext;
private static SoundManager\u instance=null;
私人音乐池;
私有HashMap-mSoundPoolMap;
私人音频经理;
私有上下文;
使用hashmap存储我的声音(以及播放、暂停和停止播放声音的方法)

重点是,显示更多代码:)我们看不出哪里出了问题。 `