본문 바로가기
코딩하기/android studio

(android studio) VideoView 만들기 - landscape, full screen

by 치즈도넛 2021. 5. 3.
반응형

가로로 꽉 찬 동영상 재생하는 방법을 알아보려고 합니다.

 

 

 

맨 처음 화면을 가로로 하기 위해

manifest에 코드를 넣어줍니다.

 


Manifest

 <activity
            android:name=".MainActivity"
            android:screenOrientation="landscape"  // 가로로 고정
            android:theme="@style/Theme.AppCompat.Light.NoActionBar"> // 액션바 없애기
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

 

android:screenOrientation="landscape"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"

를 추가합니다~

 

 

 

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout_editor_absoluteX="16dp"
        tools:layout_editor_absoluteY="62dp" />

</androidx.constraintlayout.widget.ConstraintLayout>

xml에 VideoView를 추가해줍니다.

 

** full screen을 하려면 ConstraintLayout을 해야합니다...(이유는 잘 모르겠네요..)

    LinearLayout, FrameLayout는 배경이 생기고 full screen이 안됩니다! 꼭 ConstraintLayout를 사용해주세요

 

 

 

 

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    VideoView videoView;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        videoView = findViewById(R.id.videoView);
        String videoPath = "android.resource://" + getPackageName() + "/" + R.raw.비디오name;

        Uri uri = Uri.parse(videoPath);
        videoView.setVideoURI(uri);

        MediaController mediaController = new MediaController(this); // 재생이나 정지와 같은 미디어 제어 버튼 담당
        videoView.setMediaController(mediaController);
        mediaController.setAnchorView(videoView);

        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                //onBackPressed();  // 동영상 재생 종료시 activity 를 종료하고자 할때 사용
                videoView.start();
            }
        });

        videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                videoView.start();
            }
        });
    }

 

 

이렇게 하면  VieVideoView를 사용할 수 있습니다!

반응형

댓글