마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

udp로 들어온 영상을 vidioview로 보여줄려는데 안됩니다

0 추천

기반은 윈도우즈에서 안드로이드 스튜디오를 사용하고 있고 

서버측에서 보내는 영상은 ffmpeg으로 인코딩 되어 제쪽으로 넘어옵니다 

저는 물론 vitamio를 사용해서 udp문제와 ffmpeg디코딩 문제를 해결할려고 합니다만 

 

어째 오류문구는 하나도 안뜨는데 영상이 안뜹니다;;;; 

vitamio사용시 ffmpeg을 개별로 빌드할필요 없지 않았나요? 

 

지금 오류문구 하나도 안뜨고 로그를 뒤저도 아무 문제없는데 

단지 검은 화면만 뜹니다 

아래는 그 코드입니다 

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import io.vov.vitamio.Vitamio;
import io.vov.vitamio.widget.MediaController;

public class MainActivity extends AppCompatActivity {

    io.vov.vitamio.widget.VideoView vv;
    final String path="udp://192.168.33.45:10200";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (!LibsChecker.checkVitamioLibs(this))
            return;
        setContentView(R.layout.activity_main);
        vv=(io.vov.vitamio.widget.VideoView)findViewById(R.id.vitamiovv);


        if (path == "") {
            // Tell the user to provide a media file URL/path.
            Toast.makeText(MainActivity.this, "Please edit VideoViewDemo Activity, and set path" + " variable to your media file URL/path", Toast.LENGTH_LONG).show();
            return;
        } else {
            vv.setVideoURI(Uri.parse(path));
            vv.setMediaController(new MediaController(this));
            vv.requestFocus();
            vv.start();

        }
    }
    public static class LibsChecker{
        public static final String FROM_ME = "fromVitamioInitActivity";

        public static final boolean checkVitamioLibs(Activity ctx) {
            if ((!Vitamio.isInitialized(ctx))
                    && (!ctx.getIntent().getBooleanExtra("fromVitamioInitActivity",
                    false))) {
                Intent i = new Intent();
                i.setClassName(ctx.getPackageName(),
                        "com.scgs.vitamio.InitActivity");
                i.putExtras(ctx.getIntent());
                i.setData(ctx.getIntent().getData());
                i.putExtra("package", ctx.getPackageName());
                i.putExtra("className", ctx.getClass().getName());
                ctx.startActivity(i);
                ctx.finish();
                return false;
            }
            return true;
    }
}

 

익명사용자 님이 2016년 8월 7일 질문

1개의 답변

0 추천
우선, 같은 ip 대역대에 있나요?

192.168... 이면 공유기 사용하시는듯한데요.
개발자초심 (21,220 포인트) 님이 2016년 8월 7일 답변
같은 ip대역대를 사용합니다
공용 작업실 같은 곳이라 192.168.33.255로 모두에게 송신하는 영상입니다

개인적으로 의심가는게 있는데
버퍼링부분에 대해 의심이 갑니다만.... 혹시 열려주실수 있습니까?
broadcast의 경우 보안 문제로 지원 안될 수 있습니다.
android.permission.CHANGE_WIFI_MULTICAST_STATE 퍼미션을 넣으면 될 수도 있으나. 지원자체를 안하는 단말도 꽤 됩니다.
우선 유니캐스트로 송신해서 동작되는지 확인 부터 하시는 것이 좋을 듯 합니다.
...