2017-04-17 20 views
0

私は最初のアプリの旅に沿って別のエラーに遭遇しました:)私は、アプリケーションが読み込まれるときにサウンドを再生したいです。 .wavファイルはどれですか。それは私が私の古いサムスンS4でアプリを実行すると、それは再生されませんまだ2秒間続く。 IDEの中にエラーがないか、私が見ることができるものはありません。「mp」に値があるかどうかチェックしています。投稿を見てみると、ほとんどの人は 'mp' = nullであるという問題があります。私のものは価値がありますが、電話の音が出なくなってしまいます...もう一度、助けてください!androidで音を鳴らす

public class OpeningScreen extends Activity { 
    @Override 
    // create the screen state 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // connect the xml layout file 
     setContentView(R.layout.activity_opening_screen); 

     final MediaPlayer mp = new MediaPlayer(); 
     mp.create(this, R.raw.welcome_message); 

     mp.start(); 

     // create the on touch listener 
     ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.opening_layout); 

     layout.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       // change the screen to a new state 
       Intent intent = new Intent(OpeningScreen.this, GameScreen.class); 

       // start the new activity 
       startActivity(intent); 

       // stop welcome sound (if still playing) 
       mp.stop(); 
       return true; 
      } 
     }); 
    } 
} 

答えて

0

public static MediaPlayer create(Context context, int resid)特定のリソースIDのMediaPlayerのを作成するための静的メソッドです。 これは、createを呼び出すことによって、参照用法のないメディアプレーヤーの新しいインスタンスを作成していることを意味します。

final MediaPlayer mp = MediaPlayer.create(this, R.raw. welcome_message); 

final MediaPlayer mp = new MediaPlayer(); 
mp.create(this, R.raw.welcome_message); 

を変更しようとするとプレーヤーが動作するはずです。

+0

これが最初の方法です。しかしmpはこのコード行を渡してもまだヌルでした。 –

+0

私はもう一度やりましたが、今回はうまくいきました。たぶん私はファイル名や何らかの並べ替えを台無しにしました。ありがとうございました! –

0

は、なぜあなたは最終的に使用していますか?あなたは

MediaPlayer mp = MediaPlayer.create(OpeningScreen.this, R.raw.welcome_message); 
mp.start(); 

はまた、メディアプレーヤを停止してmp3を再生することができます あなたはonDestroyで停止した場合に優れています。

public void onDestroy() { 

    mp.stop(); 
    super.onDestroy(); 

} 
+0

ファイナルが使用されているので、内部クラスからmpにアクセスできます。しかし、もし私がこの機能を作ったとしても、それは 'mp'が宣言されている場所の外になければならないが、それでも確実に最終的になる必要があるだろう。 –

関連する問題