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

webview 동영상 관련질문..

0 추천

안녕하세요 초보개발자입니다.

웹뷰로 작업중인데요 유투브 동영상이 소리만 나고 동영상이 나오질않네요..

검색을 해봣는데도 제소스엔 적용이 안됩니다..ㅜㅜ

머가 잘못된건가용..??소스보여드립니다.

 

@Override
 public void Open(WindowManager.LayoutParams params , WindowManager wm) {
  
  pause = true;
  mWebview.setFocusableInTouchMode(true);
  mWebview.requestFocus(View.FOCUS_DOWN);
     mWebview.setOnTouchListener(new View.OnTouchListener() {
         @Override
         public boolean onTouch(View v, MotionEvent event) {
             switch (event.getAction()) {
                 case MotionEvent.ACTION_DOWN:
                 case MotionEvent.ACTION_UP:
                  
                     if (!v.hasFocus()) {
                         v.requestFocus();
                         
                     }
                     break;
             }
             return false;
         }
     });
  
     mWebview.setWebViewClient(new WebViewClient(){
      
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
     // TODO Auto-generated method stub
     view.loadUrl(url);
     Log.d("ErrorLog", url);
     murl = url;
     
     return true;
    }
    @Override
    public void onPageFinished(WebView view, String url) {
     Log.d("ErrorLog", "URL ==== " + url);
     
     
     Bar.setVisibility(View.INVISIBLE);
     edittext.setText(mWebview.getUrl());
     if(view.getProgress() == 100){
      bwebviewflag = true;
      bookmarksearch();
      Log.d("ErrorLog", "progress = " + view.getProgress());
      final View view1 = view;
      new Thread (new Runnable() {
       @Override
       public void run() {
        // TODO Auto-generated method stub
        try{
         Thread.sleep(1000);
         
         if(screenshotType){
          defaultScreenshot();
          ScreenShot(view1);
         }
         
        }catch (Exception e) {
         // TODO: handle exception
         Log.d("ErrorLog", "LoginActivity : oncreate run =" + e.toString());
        }
       }
      }).start();
     }
     super.onPageFinished(view, url);
    }
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
     super.onPageStarted(view, url, favicon);
     Bar.setVisibility(View.VISIBLE);
    }
    
        });
        
     mWebview.setWebChromeClient(new WebChromeClient(){
      
      @Override
      public void onProgressChanged(WebView view , int newProgress) {
       Bar.setProgress(newProgress);
      }
     });
     
//     
     
     mWebview.getSettings().setJavaScriptEnabled(true);
     mWebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
     mWebview.getSettings().setBuiltInZoomControls(true);
     mWebview.getSettings().setPluginState(PluginState.ON);
     
     mWebview.getSettings().setSupportMultipleWindows(false);
     mWebview.getSettings().setSupportZoom(true);
//     mWebview.getSettings().setBlockNetworkImage(false);
     mWebview.getSettings().setLoadsImagesAutomatically(true);
     mWebview.getSettings().setUseWideViewPort(true);
     mWebview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
     mWebview.getSettings().setDomStorageEnabled(true);
     
     mWebview.setClickable(true);
     mWebview.setFocusable(true);
     mWebview.setFocusableInTouchMode(true);
     mWebview.setLongClickable(true);
     
     mWebview.getSettings().setGeolocationEnabled(true);
     mWebview.getSettings().setDatabaseEnabled(true);
     
     



     mWebview.loadUrl(murl);
     edittext.setText(murl);
     wm.addView(WebLayout, params);
     
 }

 

mamongs (4,050 포인트) 님이 2014년 2월 12일 질문

1개의 답변

0 추천

WebChromeClient(){

@Override

public void onShowCustomView(View view, CustomViewCallback callback) {

super.onShowCustomView(view, callback);

}

};

 

여기로 커스텀 뷰가 들어오는지 보시고 들어온다면 보이고 싶은 레이아웃에 추가해보세요.

칠리님 (10,910 포인트) 님이 2014년 2월 12일 답변
@Override
             
            public void onShowCustomView(View view, CustomViewCallback callback) {
                super.onShowCustomView(view, callback);
               
                Log.d("ErrorLog", "in");
            }

errorlog in이 찍히지 않습니다..
머가 잘못된건가요?
WebView webview = (WebView) findViewById(R.id.webview);
        webview.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onShowCustomView(View view, CustomViewCallback callback) {
                super.onShowCustomView(view, callback);
                Log.i(TAG, "커스텀 뷰가 들어옴!");
            }
        });

이렇게 하신거 맞나요?>
웹뷰가 컨텐츠를 웹뷰에 attach하지 않고 뷰만 주면서 요청할 때 저 메서드가 콜백됩니다.
표시하시려는 동영상이 존재하는 뷰가 저기로 들어올지... 들어오지 않을지는 모르겠네요...
만약에 들어온다면

@Override
            public void onShowCustomView(View view, CustomViewCallback callback) {
                Log.i(TAG, "커스텀 뷰 show!");
                super.onShowCustomView(view, callback);
            }
            @Override
            public void onHideCustomView() {
                Log.i(TAG, "커스텀 뷰 hide!");
                super.onHideCustomView();
            }

메서드를 이용하시면 될 것 같습니다.
mWebview.setWebChromeClient(new WebChromeClient(){
           
            @Override
            public void onProgressChanged(WebView view , int newProgress) {
                Bar.setProgress(newProgress);
            }
 
            @Override
             
            public void onShowCustomView(View view, CustomViewCallback callback) {
                super.onShowCustomView(view, callback);
               
                Log.d("ErrorLog", "on showcustomview in");
               
            }
 
        });

이렇게 햇구요 유투브 동영상이 사운드만 나오고 동영상이 나오지 않아서 질문올리게됫습니다.
URL 좀 알 수 있을까요?
url이 아닌 webview에서 유투브 홈페이지를 실행시킨후에요..
거기 나와잇는 리스트를 클릭했을때.. 동영상이 나오게 하고싶습니다..
클릭햇을때 사운드만 나오네요 ㅜㅠㅠ
...