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

Fragment 동영상 재생 방법 [closed]

0 추천

안녕하세요

메인 액티비티에서는

     SurfaceView surface = new SurfaceView(this);

       ADholder = surface.getHolder();
        ADholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        Adframe = (FrameLayout) findViewById(R.id.frlayAdVidio);
        Adframe.addView(surface);

        VidioADplayer.setDataSource(bgpath);
         VidioADplayer.setDisplay(ADholder);           
           VidioADplayer.prepare();
           VidioADplayer.start();

이런식으로 동영상을 재생 했습니다

근데 구조를 Fragment 식으로 바꾸고 있어서

Fragment안에서 동영상을 재생할려고 하는데요

 

  surface = new SurfaceView(view.getContext()); <- 이곳을 어떻게 처리 해줘야 하는지 모르겠습니다.
  mADholder = surface.getHolder();
  mADholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  flAdVidio.addView(surface);
  

로그는

 

07-22 03:16:04.890: E/ad(4320): java.lang.IllegalArgumentException: The surface has been released
07-22 03:16:04.890: E/ad(4320):  at android.media.MediaPlayer._setVideoSurface(Native Method)
07-22 03:16:04.890: E/ad(4320):  at android.media.MediaPlayer.setDisplay(MediaPlayer.java:737)
07-22 03:16:04.890: E/ad(4320):  at com.fragment.AdDisplayFrag.setAdView(AdDisplayFrag.java:183)
07-22 03:16:04.890: E/ad(4320):  at com.example.smartcd.MainActivity.MainSystemInit(MainActivity.java:154)
07-22 03:16:04.890: E/ad(4320):  at com.example.smartcd.MainActivity.onCreate(MainActivity.java:117)
07-22 03:16:04.890: E/ad(4320):  at android.app.Activity.performCreate(Activity.java:6005)
07-22 03:16:04.890: E/ad(4320):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
07-22 03:16:04.890: E/ad(4320):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
07-22 03:16:04.890: E/ad(4320):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
07-22 03:16:04.890: E/ad(4320):  at android.app.ActivityThread.access$800(ActivityThread.java:151)
07-22 03:16:04.890: E/ad(4320):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
07-22 03:16:04.890: E/ad(4320):  at android.os.Handler.dispatchMessage(Handler.java:102)
07-22 03:16:04.890: E/ad(4320):  at android.os.Looper.loop(Looper.java:135)
07-22 03:16:04.890: E/ad(4320):  at android.app.ActivityThread.main(ActivityThread.java:5258)
07-22 03:16:04.890: E/ad(4320):  at java.lang.reflect.Method.invoke(Native Method)
07-22 03:16:04.890: E/ad(4320):  at java.lang.reflect.Method.invoke(Method.java:372)
07-22 03:16:04.890: E/ad(4320):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:940)
07-22 03:16:04.890: E/ad(4320):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:735)

이렇게 나오고요

방법이 없을까요?

 

질문을 종료한 이유: 답을 찾았습니다.
ppst (500 포인트) 님이 2016년 7월 22일 질문
ppst님이 2016년 7월 22일 closed
...