Android,在屏幕上可见视图的那一刻播放声音

时间:2012-02-17 05:27:52

标签: android image audio

我在Android中遇到音频问题。这是交易,我有一个非常简单的启动画面。我的意图是,一旦屏幕加载,它将播放一个非常小的音频文件。

问题在于,很多时候,音频将在启动画面实际出现之前播放。

有没有办法以编程方式验证屏幕是否已加载?我不想添加一个不必要的计时器,以确保声音在加载前不播放。我希望在屏幕出现的那一刻播放声音。

以下是我的xml文件中的代码段:

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

splash是一个.png图片

这是onCreate代码:     @覆盖     protected void onCreate(Bundle savedInstanceState){     super.onCreate(savedInstanceState);     的setContentView(R.layout.scarysplash);

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

}

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你不是唯一一个有类似问题的人:))有几种方法可以做到这一点,流行的方法是实现 OnGlobalLayoutListener(),例如:

    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
                        }
                    });

彼得