Advertisement
Guest User

Untitled

a guest
Jul 27th, 2012
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.91 KB | None | 0 0
  1. package com.cine.movies;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.media.MediaPlayer;
  6. import android.media.MediaPlayer.OnCompletionListener;
  7. import android.media.MediaPlayer.OnErrorListener;
  8. import android.os.Bundle;
  9. import android.view.View;
  10. import android.webkit.WebChromeClient;
  11. import android.webkit.WebView;
  12. import android.widget.FrameLayout;
  13. import android.widget.RelativeLayout;
  14. import android.widget.Toast;
  15. import android.widget.VideoView;
  16.  
  17. public class ACT_ViewVideo extends Activity {
  18.      
  19.     private WebView webView;
  20.     private VideoView mVideoView;  
  21.     private RelativeLayout mContentView;  
  22.     private FrameLayout mCustomViewContainer;  
  23.     private WebChromeClient.CustomViewCallback mCustomViewCallback;  
  24.     private String htmlCode = "<html><head><meta charset=\"utf-8\"></head><body style=\"background:#000000;margin:0;padding:0;\">"+
  25.                               "<video id=\"video\" poster=\"http://android.rpgsoluce.com/poster.png\" src=\"@VIDEO@\" width=\"100%\" height=\"100%\"></video>"+
  26.                               "<script>var video = document.getElementById('video'); video.addEventListener('click',function(){video.play();},false);</script>"+
  27.                               "</body></html>";
  28.    
  29.     @Override
  30.     public void onCreate(Bundle savedInstanceState) {
  31.         super.onCreate(savedInstanceState);
  32.         setContentView(R.layout.layout_video);
  33.        
  34.         Intent intentReceived = this.getIntent();
  35.         String trailer = intentReceived.getCharSequenceExtra("trailer").toString();
  36.         try {
  37.             webView = (WebView)findViewById(R.id.mainWebView);
  38.             webView.getSettings().setJavaScriptEnabled(true);
  39.             webView.getSettings().setAllowFileAccess(true);
  40.             webView.getSettings().setPluginsEnabled(true);
  41.             webView.setWebChromeClient(new MyChromeClient() {});
  42.             webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); //thanks Patrick!
  43.             htmlCode = htmlCode.replaceAll("@VIDEO@", trailer);
  44.             webView.loadDataWithBaseURL("http://fake/fake", htmlCode, "text/html", "UTF-8", null);
  45.         }
  46.         catch (Exception e) {
  47.             Toast.makeText(ACT_ViewVideo.this.getApplicationContext(), getString(R.string.error_problem), 30).show();
  48.         }
  49.     }
  50.    
  51.     private class MyChromeClient extends WebChromeClient implements OnCompletionListener, OnErrorListener{  
  52.         @Override  
  53.         public void onShowCustomView(View view, CustomViewCallback callback) {
  54.             super.onShowCustomView(view, callback);
  55.             if (view instanceof FrameLayout) {
  56.                 mCustomViewContainer = (FrameLayout) view;  
  57.                 mCustomViewCallback = callback;
  58.                 mContentView = (RelativeLayout)findViewById(R.id.mainLayout); //layout that contains the webview
  59.                 if (mCustomViewContainer.getFocusedChild() instanceof VideoView) {  
  60.                     mVideoView = (VideoView) mCustomViewContainer.getFocusedChild();  
  61.                     mContentView.setVisibility(View.GONE);  
  62.                     mCustomViewContainer.setVisibility(View.VISIBLE);  
  63.                     setContentView(mCustomViewContainer);  
  64.                     mVideoView.setOnCompletionListener(this);  
  65.                     mVideoView.setOnErrorListener(this);  
  66.                     mVideoView.start();
  67.                 }  
  68.             }  
  69.         }  
  70.    
  71.         public void onHideCustomView() {  
  72.             if (mVideoView == null) {  
  73.                 return;  
  74.             } else {  
  75.                 // Hide the custom view.  
  76.                 mVideoView.setVisibility(View.GONE);  
  77.                 // Remove the custom view from its container.  
  78.                 mCustomViewContainer.removeView(mVideoView);  
  79.                 mVideoView = null;  
  80.                 mCustomViewContainer.setVisibility(View.GONE);  
  81.                 mCustomViewCallback.onCustomViewHidden();  
  82.                 // Show the content view.  
  83.                 mContentView.setVisibility(View.VISIBLE);  
  84.             }  
  85.         }
  86.    
  87.         public void onCompletion(MediaPlayer mp) {  
  88.             mp.stop();
  89.             mCustomViewContainer.setVisibility(View.GONE);  
  90.             onHideCustomView();  
  91.             setContentView(mContentView);
  92.             mCustomViewContainer = null;
  93.         }  
  94.    
  95.         public boolean onError(MediaPlayer arg0, int arg1, int arg2) {  
  96.             setContentView(mContentView);
  97.             return true;  
  98.         }  
  99.     }
  100.    
  101.     @Override  
  102.     public void onBackPressed() {  
  103.         if (mCustomViewContainer != null) {
  104.             mVideoView.stopPlayback();  
  105.             mCustomViewContainer.setVisibility(View.GONE);  
  106.      
  107.             if (mVideoView == null) {  
  108.                 return;  
  109.             } else {
  110.                 // Hide the custom view.  
  111.                 mVideoView.setVisibility(View.GONE);  
  112.                 // Remove the custom view from its container.  
  113.                 mCustomViewContainer.removeView(mVideoView);  
  114.                 mVideoView = null;  
  115.                 mCustomViewContainer.setVisibility(View.GONE);  
  116.                 mCustomViewCallback.onCustomViewHidden();  
  117.                 // Show the content view.  
  118.                 mContentView.setVisibility(View.VISIBLE);  
  119.                 setContentView(mContentView);  
  120.                 mCustomViewContainer = null;
  121.             }  
  122.         }
  123.         else if (webView.canGoBack()) {
  124.             webView.goBack();
  125.         } else
  126.             super.onBackPressed();
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement