来自WebView的VideoView不会播放视频?

时间:2011-11-24 07:34:29

标签: android url video webview android-videoview

我的应用程序当前使用WebView,然后使用WebChromeClient和onShowCustomView转到VideoView for Videos。但是,我不确定在点击视频时如何获得正确的链接?它出现说视频无法播放,但这是因为我根本没有传递视频。如何获取单击的链接的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;  
        }  
   });        
  }  
}

1 个答案:

答案 0 :(得分:0)

您应该在WebViewClient中实施shouldOverrideUrlLoading(..)。这使您有机会拦截URL加载并显示您的视频视图。