728x90

라즈베리파이에서 파이 카메라와, motion을 이용해 웹에서 스트리밍을 할 수 있다. 그 스트리밍 된 영상을 WebView를 이용해 어플에서 볼 수 있게 하려 한다.

https://1d1cblog.tistory.com/18

 

라즈베리파이 motion 사용하기

1. motion 이란? 카메라로 영상을 촬영해서 실시간으로 스트리밍할 수 있는 프로그램이다. 사진 촬영 그리고 동영상 녹화도 가능하고 모션감지 기능도 있다. 2. 라즈베리파이 카메라 연결 파이와 카메라를 준비한..

1d1cblog.tistory.com

1. AndroidManifest.xml 수정

인터넷 사용을 위해 AndroidManifest.xml 파일에 아래 코드를 추가한다.

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

2. XML 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".CCTV">
 
    <WebView
        android:id="@+id/cctvweb"
        android:layout_marginTop="30dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

3. Java

아래 코드는 개인 프로젝트에서 사용하기 위해 Fragment에 짠 코드이다.

public class CCTV extends Fragment {
    WebView webView;
    WebSettings webSettings;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_cctv, container, false);
 
        webView = (WebView) view.findViewById(R.id.cctvweb);
        webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
 
        webView.loadData("<html><head><style type='text/css'>body{margin:auto auto;text-align:center;} " +
                        "img{width:100%25;} div{overflow: hidden;} </style></head>" +
                        "<body><div><img src='http://11.11.11.111:1111/'/></div></body></html>" ,
                "text/html",  "UTF-8");
 
        return view;
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

중간의 img src에 본인 motion 스트리밍 주소를 적으면 된다. WebView의 loadData를 사용하여 HTML 코드를 넣으면 아래 실행화면처럼 영상을 잘리는 거 없이 볼 수 있지만 loadUrl을 사용하면 웹을 통째로 불러와 적합하지 않다.

4. 실행화면

loadData 사용 시
loadUrl 사용 시

참고자료

- 코스모스님 naver blog : https://m.blog.naver.com/PostView.nhn?blogId=cosmosjs&logNo=220824316155&categoryNo=80&proxyReferer=https%3A%2F%2Fwww.google.com%2F

728x90

+ Recent posts