首页 文章

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

提问于
浏览
1

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

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

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

这是我的xml文件的片段:

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

splash是一个.png图片

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

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

}

在此先感谢您的帮助!

1 回答

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

    切赫

相关问题