2010-09-20 6 views
1

Я пишу приложение для Android, где я воспроизвожу видео с помощью VideoView, но mediaController появляется только после нажатия экрана. Правильная ли это процедура? Если нет, как мы можем заставить его появляться, не нажимая на экран.MediaController появляется только после нажатия на Android

Спасибо заранее,

ответ

5

Вы можете отобразить его с помощью метода шоу(), но не из OnCreate метода вашей деятельности, содержащей ваш VideoView, потому что VideoView еще не привязан к SurfaceHolder (или что-то в этом роде). У вас будет аналогичная процедура:

public class ActivityPreHomeVideo extends Activity implements SurfaceHolder.Callback{ 

    private VideoView mVideoView; 
    private MediaController mMediaController; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.videolayout); 
     mVideoView = (VideoView) findViewById(R.id.videolayout_video); 

     mMediaController = new MediaController(this); 
     mMediaController.setMediaPlayer(mVideoView); 
     mMediaController.setAnchorView(mVideoView); 
     mVideoView.setMediaController(mMediaController); 

     //Set a callback when the VideoView is displayed 
     mVideoView.getHolder().addCallback(this); 

     mVideoView.setVideoPath("http://.../your_video.mp4"); 
    } 

    @Override 
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { 
    } 

    @Override 
    public void surfaceCreated(SurfaceHolder holder) { 
     // Display the mediaController for 3 seconds 
     mMediaController.show(); 
    } 

    @Override 
    public void surfaceDestroyed(SurfaceHolder holder) { 
    } 
} 

Надеюсь, это поможет.

Смежные вопросы