VideoView из WebView Не воспроизводит видео?

В настоящее время мое приложение использует WebView, а затем с помощью WebChromeClient и onShowCustomView переходит к VideoView для видео. ОДНАКО, я не уверен, как получить правильную ссылку, когда я нажимаю на видео? Выходит, что видео невозможно воспроизвести, но это потому, что я вообще не передаю ему видео. Как я могу получить URL-адрес ссылки, по которой щелкнули? Любая помощь?

Это действие с WebView:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mnwv_main);

    myWebView = (WebView) findViewById(R.id.webview);
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.getSettings().setPluginsEnabled(true);     

    myWebView.setWebChromeClient(new WebChromeClient() {  

    public void onShowCustomView(View view, CustomViewCallback callback) {  
    super.onShowCustomView(view, callback); 
    videoURL = myWebView.getUrl();
    in= new Intent(MNWVMainPage.this,MainPageVideoHandler.class);
    startActivity(in); }  
    });       

    myWebView.setWebViewClient(new WebViewClient());
    myWebView.loadUrl("http://www.meanwhileinwv.com"); 
}

Если я нажму на видео, начнется это действие:

public class MainPageVideoHandler extends Activity {

VideoView myVideoView;

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.video_player);

   myVideoView = (VideoView) findViewById(R.id.videoview);
   MediaController mediaController = new MediaController(this);
   mediaController.setAnchorView(myVideoView);
   String video = (MNWVMainPage.videoURL);
   myVideoView.setMediaController(mediaController);
   myVideoView.setVideoPath(video);
   myVideoView.start();


   myVideoView.setOnCompletionListener(new OnCompletionListener() {         
     @Override  
        public void onCompletion(MediaPlayer mp) {  
        mp.stop();
        myVideoView.stopPlayback();
        setContentView(R.layout.mnwv_main);  
        }  
   });  

   myVideoView.setOnErrorListener(new OnErrorListener() {  
        @Override  
        public boolean onError(MediaPlayer mp, int what, int extra) {  
            return false;  
        }  
   });        
  }  
}

person comead    schedule 24.11.2011    source источник


Ответы (1)


Вы должны реализовать shouldOverrideUrlLoading(..) в вашем WebViewClient. Это дает вам возможность перехватить загрузку URL и показать просмотр вашего видео.

person Peter Knego    schedule 24.11.2011