본문 바로가기
Android

VideoView로 동영상 재생하기

by holy season 2023. 4. 12.
반응형

RTSP란?

2023.04.11 - [Protocol] - RTSP(Real Time Streaming Protocol)

 

RTSP(Real Time Streaming Protocol)

실시간 스트리밍 프로토콜(Real Time Streaming Protocol, RTSP)이란? 스트리밍 미디어 서버를 제어할 목적으로 엔터테인먼트, 통신 시스템에 사용하도록 설계된 네트워크 제어 프로토콜프로토콜 종단점(

holy-season.tistory.com

ExoPlayer로 RTSP 동영상 재생하기

2023.04.11 - [Android] - Android RTSP 영상 재생하기

 

Android RTSP 영상 재생하기

Android RTSP 영상 재생하기 RTSP란? 2023.04.11 - [Protocol] - RTSP(Real Time Streaming Protocol) RTSP(Real Time Streaming Protocol) 실시간 스트리밍 프로토콜(Real Time Streaming Protocol, RTSP)이란? 스트리밍 미디어 서버를 제어

holy-season.tistory.com

RSTP 테스트 주소

공공 데이터 포털 충청남도 천안시_교통정보 CCTV

https://www.data.go.kr/data/15063717/fileData.do

 

충청남도 천안시_교통정보 CCTV_20220922

충청남도 천안시 관내 교통정보cctv에 대한 데이터입니다. 천안시 관내 교통정보cctv(CCTV관리번호, 경도, 위도, 설치위치명 등)의 항목들을 제공합니다.

www.data.go.kr

Manifests 정의하기

AndroidManifest에 인터넷을 사용할 수 있게 하는 권한을 추가한다

<uses-permission android:name="android.permission.INTERNET" />

VideoView 레이아웃 작성하기

ExoPlayer로 RSTP 동영상을 재생할 수 있는 줄 알았는데 안드로이드에서 제공하는 VideoView로도 재생할 수 있었다.

VideoView로 동영상을 재생하기 위해서는 먼저 VideoView 레이아웃을 만들어야 한다.

<?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">

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.5"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

VideoView레이아웃은 화면 전체를 채우도록 만들었다.

MainActivity 작성

MainActivity에서는 onCreate할때 작성해 두었던 VideoView 레이아웃으로 설정하고 VideoView를 얻어와서 URI를 받아서 VideoView에 uri를 넣어주기만 하면 된다.

그리고 setOnPreparedListener를 구현해서 비디오가 준비되면 영상을 재생하도록 하였다.

package com.example.mediaplayer;

import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);

        VideoView videoView = findViewById(R.id.videoView);
        Uri uri = Uri.parse("rtsp://210.99.70.120:1935/live/cctv002.stream");
        videoView.setVideoURI(uri);

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

결과

VideoView로도 RTSP 동영상을 재생할 수 있는것을 알 수 있었다.

 

반응형

'Android' 카테고리의 다른 글

전체 화면 설정  (0) 2023.04.21
RecyclerView 만들기  (0) 2023.04.18
RecyclerView  (0) 2023.04.16
Android RTSP 영상 재생하기  (0) 2023.04.11
Firebase Cloud Messaging(FCM) 푸시 알림 안드로이드 앱 구현  (0) 2023.03.15