package typical_if.android.fragment; import android.app.ActionBar; import android.app.Activity; import android.app.FragmentManager; import android.app.ProgressDialog; import android.content.pm.ActivityInfo; import android.graphics.Bitmap; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.MediaController; import android.widget.VideoView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.vk.sdk.api.model.VKApiVideo; import typical_if.android.R; /** * Created by LJ on 11.08.2014. */ public class FragmentVideoView extends Fragment { ProgressDialog pDialog; VideoView videoview; VKApiVideo video; final static private Bundle args = new Bundle(); // static String videoURL = "http://cs634005v4.vk.me/u106880118/videos/b892209e1d.240.mp4?extra=cN3FmRT76KMgP631XZmgnsaoYN3BTo2mLVM7-v3J-s5M2V5GxdeKZwg9XWh910VoAjRwlna7MigJcXK1R3dWFfwo7DMHjkY"; public static final FragmentVideoView newInstance(String url, VKApiVideo video) { FragmentVideoView fragment = new FragmentVideoView(); args.clear(); args.putParcelable("video", video); args.putString("url", url); fragment.setArguments(args); return fragment; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { this.video = getArguments().getParcelable("video"); } } public FragmentVideoView() { } // ActionBar actionBar; @Override public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View rootView = inflater.inflate(R.layout.fragment_video_view, container, false); setRetainInstance(true); getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); // actionBar = getActivity().getActionBar(); // actionBar.hide(); playVideo(getArguments().getString("url"), rootView); getActivity().getFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() { @Override public void onBackStackChanged() { getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // actionBar.show(); } }); return rootView; } @Override public void onAttach(Activity activity) { super.onAttach(activity); } @Override public void onDetach() { super.onDetach(); // actionBar.show(); // getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } @Override public void onDestroy() { super.onDestroy(); getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } public void playVideo(String url, final View view) { videoview = (VideoView) view.findViewById(R.id.videoView); final ImageView preview = ((ImageView) view.findViewById(R.id.video_preview)); // Glide.with(TIFApp.getAppContext()) // .load(video.photo.get(1).src) // .placeholder(R.drawable.event_stub) // .crossFade() // .into(preview); ImageLoader.getInstance().displayImage(video.photo.get(1).src, preview, new DisplayImageOptions.Builder() .cacheOnDisc(true) .cacheInMemory(true) .showImageOnLoading(R.drawable.event_stub) // TODO resource or drawable .resetViewBeforeLoading(true) .bitmapConfig(Bitmap.Config.RGB_565) .imageScaleType(ImageScaleType.EXACTLY) .build()); preview.setVisibility(View.VISIBLE); pDialog = new ProgressDialog(getActivity()); // Set progressbar navDrawTitle // pDialog.setTitle("Android Video Streaming Tutorial"); // Set progressbar message // pDialog.setMessage("Buffering..."); pDialog.setIndeterminate(false); pDialog.setCancelable(false); // Show progressbar pDialog.show(); // pDialog.setContentView(R.layout.custom_progress_bar); try { // Start the MediaController MediaController mediacontroller = new MediaController(getActivity()); mediacontroller.setAnchorView(videoview); mediacontroller.setAlpha(1f); // Get the URL from String VideoURL Uri video = Uri.parse(url); videoview.setMediaController(mediacontroller); videoview.setVideoURI(video); } catch (Exception e) { Log.e("Error", e.getMessage()); e.printStackTrace(); } videoview.requestFocus(); videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { public void onPrepared(MediaPlayer mp) { pDialog.dismiss(); preview.setVisibility(View.GONE); videoview.start(); mp.setOnInfoListener(new MediaPlayer.OnInfoListener() { @Override public boolean onInfo(MediaPlayer mp, int what, int extra) { if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START) { pDialog.show(); } else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) { pDialog.dismiss(); } return false; } }); } }); } }