Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class DetailCameraFragment extends ChildFragment implements
- SurfaceHolder.Callback,
- MediaController.MediaPlayerControl,
- MapFragment.ControlLock {
- private CustomScrollView mView;
- private Uri mUrlVideo;
- private TabsPagerAdapter adapter;
- private SlidingTabLayout mSlidingTabLayout;
- private ViewPager mViewPager;
- //Video Controls
- private SurfaceView mVideoView;
- private MediaPlayer player;
- private MediaController controller;
- private ImageButton mPlay;
- private TextView mErrorView;
- private RelativeLayout mPlaceHolder;
- private ProgressBar mContainerLoader;
- private ArrayList<Fragment> arrayFragment = new ArrayList<Fragment>();
- private ArrayList<String> arrayTagFragment = new ArrayList<String>();
- private static class LazyHolder {
- private static final DetailCameraFragment detailCameraFragment = new DetailCameraFragment();
- }
- public static DetailCameraFragment getInstance() {
- return LazyHolder.detailCameraFragment;
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- mUrlVideo = Uri.parse("http://rtmp.0be3.upx.net.br:1935/0be3_610/0be3_610.stream/playlist.m3u8");
- }
- @Override
- public CustomScrollView onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- mView = (CustomScrollView) inflater.inflate(R.layout.fragment_detail_camera, container, false);
- if (mView != null) {
- mViewPager = (ViewPager) mView.findViewById(R.id.details_viewpager);
- mVideoView = (SurfaceView) mView.findViewById(R.id.video_view);
- mPlaceHolder = (RelativeLayout) mView.findViewById(R.id.video_placeholder);
- mContainerLoader = (ProgressBar) mView.findViewById(R.id.progress_bar);
- mPlay = (ImageButton) mView.findViewById(R.id.play_camera);
- mErrorView = (TextView) mView.findViewById(R.id.error_view);
- arrayFragment.add(CommentsFragment.newInstance());
- arrayFragment.add(DescriptionFragment.newInstance());
- arrayFragment.add(MapFragment.newInstance());
- arrayTagFragment.add(getString(R.string.comments));
- arrayTagFragment.add(getString(R.string.description));
- arrayTagFragment.add(getString(R.string.map));
- mVideoView.requestFocus();
- adapter = new TabsPagerAdapter(getActivity().getSupportFragmentManager(), arrayFragment, arrayTagFragment);
- mViewPager.setAdapter(adapter);
- mSlidingTabLayout = (SlidingTabLayout) mView.findViewById(R.id.details_sliding_tabs);
- mSlidingTabLayout.setCountDivider(arrayFragment.size());
- mSlidingTabLayout.setCustomTextColor(getResources().getColor(R.color.picton_blue));
- mSlidingTabLayout.setViewPager(mViewPager);
- mSlidingTabLayout.setOnPageChangeListener(onPageChangeListener);
- mSlidingTabLayout.setCustomTabColorizer(setCustomTabColor);
- mPlaceHolder.setOnClickListener(onPlayClick);
- mVideoView.setOnClickListener(onPauseClick);
- }
- return mView;
- }
- @Override
- public void onPause() {
- super.onPause();
- player.stop();
- player = null;
- controller = null;
- }
- @Override
- public void onResume() {
- super.onResume();
- try {
- mPlaceHolder.setVisibility(View.VISIBLE);
- mVideoView.setVisibility(View.GONE);
- mContainerLoader.setVisibility(View.GONE);
- mVideoView.getHolder().addCallback(this);
- player = new MediaPlayer();
- controller = new MediaController(getActivity());
- controller.setMediaPlayer(DetailCameraFragment.this);
- controller.setAnchorView((RelativeLayout) mView.findViewById(R.id.videoSurfaceContainer));
- controller.show(0);
- player.setDataSource(getActivity(), mUrlVideo);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onViewStateRestored(Bundle savedInstanceState) {
- super.onViewStateRestored(savedInstanceState);
- if(savedInstanceState != null && player != null) {
- player.pause();
- player.seekTo(savedInstanceState.getInt("video_position", 0));
- }
- }
- @Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- }
- @Override
- public void surfaceCreated(SurfaceHolder surfaceHolder) {
- try {
- player.setDisplay(surfaceHolder);
- player.prepareAsync();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i2, int i3) {
- }
- @Override
- public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
- }
- @Override
- public void start() {
- player.start();
- }
- @Override
- public void pause() {
- player.pause();
- }
- @Override
- public int getDuration() {
- return player.getDuration();
- }
- @Override
- public int getCurrentPosition() {
- return player.getCurrentPosition();
- }
- @Override
- public void seekTo(int position) {
- player.seekTo(position);
- }
- @Override
- public boolean isPlaying() {
- return player.isPlaying();
- }
- @Override
- public int getBufferPercentage() {
- return 0;
- }
- @Override
- public boolean canPause() {
- return false;
- }
- @Override
- public boolean canSeekBackward() {
- return false;
- }
- @Override
- public boolean canSeekForward() {
- return false;
- }
- @Override
- public boolean isFullScreen() {
- return false;
- }
- @Override
- public void stopAndSetFullScreen() {
- player.stop();
- Intent intent = new Intent(getActivity(), FullScreenActivity.class);
- intent.putExtra("UrlVideo",mUrlVideo.toString());
- startActivity(intent);
- }
- @Override
- public void toggleFullScreen() {
- Intent intent = new Intent(getActivity(), FullScreenActivity.class);
- intent.putExtra("UrlVideo",mUrlVideo.toString());
- startActivity(intent);
- }
- @Override
- public void setVolume(float value, float to) {
- player.setVolume(value, to);
- }
- private View.OnClickListener onPauseClick = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- try {
- if (player.isPlaying()) {
- player.pause();
- } else {
- //player.seekTo(0);
- player.start();
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- };
- private View.OnClickListener onPlayClick = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- try {
- mPlaceHolder.setVisibility(View.GONE);
- mVideoView.setVisibility(View.VISIBLE);
- mContainerLoader.setVisibility(View.VISIBLE);
- player.setAudioStreamType(AudioManager.STREAM_MUSIC);
- player.setOnPreparedListener(onPrepared);
- player.setOnBufferingUpdateListener(onBuffer);
- player.setOnInfoListener(onInfo);
- player.setOnErrorListener(onError);
- player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
- @Override
- public void onCompletion(MediaPlayer mediaPlayer) {
- if(player != null) {
- player.seekTo(0);
- player.start();
- }
- }
- });
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (SecurityException e) {
- e.printStackTrace();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
- }
- };
- private MediaPlayer.OnErrorListener onError = new MediaPlayer.OnErrorListener() {
- @Override
- public boolean onError(MediaPlayer mediaPlayer, int info, int extra) {
- if(mContainerLoader.getVisibility() == View.VISIBLE) {
- mContainerLoader.setVisibility(View.GONE);
- }
- switch (info) {
- case MediaPlayer.MEDIA_ERROR_UNKNOWN:
- mErrorView.setText(getString(R.string.streaming_error));
- break;
- case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
- mErrorView.setText(getString(R.string.streaming_error));
- break;
- }
- mErrorView.setVisibility(View.VISIBLE);
- return false;
- }
- };
- private MediaPlayer.OnInfoListener onInfo = new MediaPlayer.OnInfoListener() {
- @Override
- public boolean onInfo(MediaPlayer mediaPlayer, int info, int extra) {
- switch (info) {
- case MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START:
- mContainerLoader.setVisibility(View.GONE);
- break;
- case MediaPlayer.MEDIA_ERROR_TIMED_OUT:
- break;
- case MediaPlayer.MEDIA_INFO_BUFFERING_START:
- mContainerLoader.setVisibility(View.VISIBLE);
- break;
- case MediaPlayer.MEDIA_INFO_BUFFERING_END:
- mContainerLoader.setVisibility(View.GONE);
- break;
- }
- return false;
- }
- };
- private MediaPlayer.OnPreparedListener onPrepared = new MediaPlayer.OnPreparedListener() {
- @Override
- public void onPrepared(MediaPlayer mediaPlayer) {
- player.start();
- }
- };
- private MediaPlayer.OnBufferingUpdateListener onBuffer = new MediaPlayer.OnBufferingUpdateListener() {
- @Override
- public void onBufferingUpdate(MediaPlayer mediaPlayer, int position) {
- DebugUtil.log("value: " + position + "mediaplayer: " + mediaPlayer);
- mContainerLoader.setVisibility(View.VISIBLE);
- }
- };
- private ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
- }
- @Override
- public void onPageSelected(int position) {
- }
- @Override
- public void onPageScrollStateChanged(int state) {
- }
- };
- private SlidingTabLayout.TabColorizer setCustomTabColor = new SlidingTabLayout.TabColorizer() {
- @Override
- public int getIndicatorColor(int position) {
- return Color.parseColor(getResources().getString(R.color.bright_gray));
- }
- @Override
- public int getDividerColor(int position) {
- return Color.TRANSPARENT;
- }
- };
- @Override
- public void lock() {
- DebugUtil.log("travou" + mView);
- mView.requestDisallowInterceptTouchEvent(true);
- }
- @Override
- public void unlock() {
- DebugUtil.log("destravou" + mView);
- mView.requestDisallowInterceptTouchEvent(false);
- }
- public static DetailCameraFragment newInstance() {
- return new DetailCameraFragment();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment