2012-02-17 10 views
1

Androidでオーディオに問題があります。ここでの取引は、私は非常に簡単なスプラッシュ画面があります。私の意図は、一度画面が読み込まれると、非常に小さなオーディオファイルを再生します。Android、画面に表示される瞬間に音声を再生

問題は、スプラッシュ画面が実際に表示される前に、多くの時間、オーディオが再生されることです。

画面が読み込まれたことをプログラムで確認する方法はありますか?私は、サウンドがロードされる前に再生されないことを確認するために、不要なタイマーを追加したくありません。そして、画面が現れた瞬間に音が鳴りたい。ここで

は私のxmlファイルからの抜粋です:

<ImageView 
android:src="@drawable/splash" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
/> 

スプラッシュは、.pngの画像

であり、ここでのonCreateコードです: @Override 保護され、ボイドのonCreate(バンドルsavedInstanceState){ は、 super.onCreate(savedInstanceState); setContentView(R.layout.scarysplash);

mpPlaySound = MediaPlayer.create(this, R.raw.scream1); 
mpPlaySound.start(); 
} 

} 

ご協力いただきありがとうございます。

View yourView = ...; 
       yourView.getViewTreeObserver().addOnGlobalLayoutListener(
        new ViewTreeObserver.OnGlobalLayoutListener() 
        { 
         // ----------------------------------------- 
         // 
         // Callback method to be invoked when the 
         // global layout state or the visibility 
         // of views within the view tree changes 
         // 
         // -----------------------------------------    
         @Override 
         public void onGlobalLayout() 
         { 

             // Remove view 
          View yourView = findViewById(R.id.yourId); 

          if (yourView != null) 
          { 
           yourView .getViewTreeObserver().removeGlobalOnLayoutListener(this); 

          } 
// PLAY SOUND 
         } 
        }); 

ペトル:あなたは同様の問題:))それを行うにはどのようにいくつかの方法があり、人気の1はを実装するためにOnGlobalLayoutListener()、例えばされているを持っているだけだけではありません

答えて

2

+0

すごく早かったです。どうもありがとうございます。私はこの決議に目を通します。私はあなたの時間を感謝します! – jasdparker

関連する問題