학교/Android

ShowVideo.java (videoListApp)

서윤-정 2024. 4. 17. 23:24

 

* 선택된 비디오의 제목을 표시하고 해당 비디오를 재생한다. 

 

 

package com.example.hyw_bvideolistapp;

import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.VideoView;

import androidx.appcompat.app.AppCompatActivity;

public class ShowVideo extends AppCompatActivity {

    LinearLayout layout;
    TextView title;
    VideoView video;

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


        layout = (LinearLayout) findViewById(R.id.videolayout);
        title = (TextView) findViewById(R.id.title);
        video = (VideoView) findViewById(R.id.video);

        Resources res = getResources();
        Intent it = getIntent();
        String tag = it.getStringExtra("it_tag");

        int title_id = res.getIdentifier("title"+tag, "string", getPackageName());
        String title_str = res.getString(title_id);
        title.setText(title_str);

        int video_id =
                res.getIdentifier("video"+tag, "string", getPackageName());
        String video_str = res.getString(video_id);

        int raw_id =
                res.getIdentifier(video_str, "raw", getPackageName());
        Uri uri = Uri.parse("android.resource://com.example.hyw_bvideolistapp/"+raw_id);
        video.setVideoURI(uri);
        video.setVisibility(View.VISIBLE);
        video.start();

    }
}

 

 

 

 

int raw_id = res.getIdentifier(video_str, "raw", getPackageName()): 이 코드는 리소스의 ID를 가져오는데 사용됩니다. 여기서는 video_str에 해당하는 비디오 리소스의 ID를 가져옵니다. video_str은 이전 액티비티에서 선택된 비디오의 이름을 나타냅니다.

Uri uri = Uri.parse("android.resource://com.example.hyw_bvideolistapp/"+raw_id): 이 코드는 비디오 파일의 Uri를 생성합니다. 여기서 android.resource://로 시작하는 Uri를 사용하여 앱의 리소스로부터 비디오를 로드합니다. com.example.hyw_bvideolistapp은 앱의 패키지명이며, raw_id는 앞서 가져온 비디오 리소스의 ID입니다.

video.setVideoURI(uri): 이 코드는 VideoView에 비디오의 Uri를 설정합니다. 즉, VideoView가 재생할 비디오의 소스를 지정합니다.

video.setVisibility(View.VISIBLE): 이 코드는 VideoView를 화면에 표시하기 위해 가시성을 설정합니다. View.VISIBLE은 뷰를 화면에 보이게 합니다.

video.start(): 이 코드는 VideoView에서 비디오 재생을 시작합니다. 즉, 선택된 비디오를 재생합니다.