2016-08-22 13 views
0

フラグメントからサウンドクリップを再生しようとしていますが、サウンドが再生されていません。私はコンソールで何のエラーもなく、クラッシュすることもなく、サウンドが再生されないだけです。はい、ボリュームが上がり、何もミュートされません。関連するコードはすべてSoundPoolのフラグメントがAndroidスタジオを再生していません

 int soundId; 
     int currentSound; 
     SoundPool sp; 

     boolean pressed; 
     boolean loaded; 

     sp = new SoundPool(5, AudioManager.STREAM_MUSIC,0); 
     currentSound = R.raw.whatarethose; 
     sp.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() { 
      @Override 
      public void onLoadComplete(SoundPool soundPool, int i, int i1) { 
       loaded = true; 
      } 
     }); 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if(loaded) { 
        soundId = sp.load(getActivity(), currentSound, 1); 

        sp.play(soundId, 1, 1, 0, 0, 1); 
       } 
      } 
     }); 
+1

エミュレータでは意味はありますか?あなたは実際のデバイスでそれを試すことができますか?最近エミュレータでサウンドを再生できないという問題もありましたが、実際のデバイスでは正常に動作していました。 – ShadowGod

答えて

0

です。ボタンをクリックするとサウンドが読み込まれます。クリックした前に、OnCompleteListenerを設定した後でサウンドをロードしようとします。

int soundId; 
    int currentSound; 
    SoundPool sp; 

    boolean pressed; 
    boolean loaded; 

    sp = new SoundPool(5, AudioManager.STREAM_MUSIC,0); 
    currentSound = R.raw.whatarethose; 
    sp.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() { 
     @Override 
     public void onLoadComplete(SoundPool soundPool, int i, int i1) { 
      loaded = true; 
     } 
    }); 
    soundId = sp.load(getActivity(), currentSound, 1); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if(loaded) { 
       sp.play(soundId, 1, 1, 0, 0, 1); 
      } 
     } 
    }); 
関連する問題