如何implemenent安卓视频播放器全屏幕 [英] how to implemenent android video player in full screen

查看:242
本文介绍了如何implemenent安卓视频播放器全屏幕的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经实现Android的视频播放器,但是我不需要这样的我是如何的意思是开放的活动,我需要付一半的视频画面在中央当我点击按钮全屏按钮,然后我需要牛逼支付,全屏模式下,如何实现它帮助我....

i have implemented android video player , but i don't need like this how i need mean when opening activity i need to pay video half screen in center when i click button full screen button then i need t pay in full screen , how to implement it help me....

VideoPlayerActivity

VideoPlayerActivity

public class VideoPlayerActivity extends Activity implements SurfaceHolder.Callback, MediaPlayer.OnPreparedListener, VideoControllerView.MediaPlayerControl {

    SurfaceView videoSurface;
    MediaPlayer player;
    VideoControllerView controller;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_player);

        videoSurface = (SurfaceView) findViewById(R.id.videoSurface);
        SurfaceHolder videoHolder = videoSurface.getHolder();
        videoHolder.addCallback(this);

        player = new MediaPlayer();
        controller = new VideoControllerView(this);

        try {
            player.setAudioStreamType(AudioManager.STREAM_MUSIC);
            player.setDataSource(this, Uri.parse("http:/myipadree/sites/default/files/759226_639541239394676_1125470178_n.mp4"));
            player.setOnPreparedListener(this);
        } catch (IllegalArgumentException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        controller.show();
        return false;
    }

    // Implement SurfaceHolder.Callback
    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        player.setDisplay(holder);
        player.prepareAsync();
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {

    }
    // End SurfaceHolder.Callback

    // Implement MediaPlayer.OnPreparedListener
    @Override
    public void onPrepared(MediaPlayer mp) {
        controller.setMediaPlayer(this);
        controller.setAnchorView((FrameLayout) findViewById(R.id.videoSurfaceContainer));
        player.start();
    }
    // End MediaPlayer.OnPreparedListener

    // Implement VideoMediaController.MediaPlayerControl
    @Override
    public boolean canPause() {
        return true;
    }

    @Override
    public boolean canSeekBackward() {
        return true;
    }

    @Override
    public boolean canSeekForward() {
        return true;
    }

    @Override
    public int getBufferPercentage() {
        return 0;
    }

    @Override
    public int getCurrentPosition() {
        return player.getCurrentPosition();
    }

    @Override
    public int getDuration() {
        return player.getDuration();
    }

    @Override
    public boolean isPlaying() {
        return player.isPlaying();
    }

    @Override
    public void pause() {
        player.pause();
    }

    @Override
    public void seekTo(int i) {
        player.seekTo(i);
    }

    @Override
    public void start() {
        player.start();
    }

    @Override
    public boolean isFullScreen() {
        return false;
    }

    @Override
    public void toggleFullScreen() {

    }
    // End VideoMediaController.MediaPlayer

这是工作完美,但它打开全屏如果我修改布局文件的宽度和高度,然后如何实现全屏按钮全屏按钮

it is working perfect but it opening full screen if i modify layout file width and height then how to implement full screen and button full screen button

推荐答案

这是演示自定义介质的控制,但在全屏幕和小屏幕没有code。 http://www.brightec.co.uk/blog/custom-android -media控制器 我创建方法setFullScreen。 code以下为我工作。

This is demo custom media control, but full screen and small screen no code. http://www.brightec.co.uk/blog/custom-android-media-controller I'm create method setFullScreen. Code below working for me.

private boolean mFullScreen = true;

@Override
public boolean isFullScreen() {   
    if(mFullScreen){    
        Log.v("FullScreen", "--set icon full screen--");
        return false;
    }else{
        Log.v("FullScreen", "--set icon small full screen--");
        return true;
    }   
}
@Override
public void toggleFullScreen() {
    Log.v("FullScreen", "-----------------click toggleFullScreen-----------");
    setFullScreen(isFullScreen());

}
// End VideoMediaController.MediaPlayerControl

public void setFullScreen(boolean fullScreen){
    fullScreen = false;

    if (mFullScreen)

    {
        Log.v("FullScreen", "-----------Set full screen SCREEN_ORIENTATION_LANDSCAPE------------"); 
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
        DisplayMetrics displaymetrics = new DisplayMetrics();
          getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
          int height = displaymetrics.heightPixels;
          int width = displaymetrics.widthPixels;
          android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
          params.width = width;
          params.height=height;
          params.setMargins(0, 0, 0, 0);
          //set icon is full screen
         mFullScreen = fullScreen;
    }
    else{
        Log.v("FullScreen", "-----------Set small screen SCREEN_ORIENTATION_PORTRAIT------------");             
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);      
        DisplayMetrics displaymetrics = new DisplayMetrics();
          getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
          final FrameLayout mFrame = (FrameLayout) findViewById(R.id.videoSurfaceContainer);
         // int height = displaymetrics.heightPixels;
          int height = mFrame.getHeight();//get height Frame Container video
          int width = displaymetrics.widthPixels;
          android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
          params.width = width;
          params.height= height;
          params.setMargins(0, 0, 0, 0);
          //set icon is small screen
          mFullScreen = !fullScreen;
    }
}

或使用onConfigurationChanged的旋转屏幕。

or use onConfigurationChanged for Rotation screen.

*@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

  // Checks the orientation of the screen
  if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
   // setContentView(R.layout.view_lang);
      DisplayMetrics displaymetrics = new DisplayMetrics();
      getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
      int height = displaymetrics.heightPixels;
      int width = displaymetrics.widthPixels;
      android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
      params.width = width;
      params.height=height;// -80 for android controls
      params.setMargins(0, 0, 0, 0);
  } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
    Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    //setContentView(R.layout.view);    
    DisplayMetrics displaymetrics = new DisplayMetrics();
      getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
      int height = displaymetrics.heightPixels;
      int width = displaymetrics.widthPixels;
      android.widget.FrameLayout.LayoutParams params = (android.widget.FrameLayout.LayoutParams) videoSurface.getLayoutParams();
      params.width = width;
      params.height=height / 3;
      params.setMargins(0, 0, 0, 0);
  }
}

在此处添加code在AndroidManifest.xml中

add code here in AndroidManifest.xml

 android:configChanges="orientation|keyboard|keyboardHidden|screenSize" 

对不起英语!

Sorry English !

这篇关于如何implemenent安卓视频播放器全屏幕的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆