1

У меня проблема, У меня есть ViewPager с фрагментами, и у меня есть VideoFragment, который отображает видео. Все работает нормально, но если видео загружено и начинает играть, оно отображает небольшую черную линию внизу представления, которую я думаю.VideoView рисует черную линию внизу

См. Снимок экрана для справки!

http://imgur.com/6j79LIp

Вот код, я совершенно не знаю, где черта приходит от ....

My Фрагмент макета:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/grey_900"> 

    <com.pr0.pr0.library.CircleProgressBar 
     android:id="@+id/progressVideo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@color/grey_900" 
     android:layout_centerInParent="true" 
     app:mlpb_show_arrow="true" 
     app:mlpb_enable_circle_background="false" 
     app:mlpb_arrow_height="5dp" 
     app:mlpb_arrow_width="10dp" 
     app:mlpb_progress_color="@android:color/holo_red_light" 
     android:visibility="visible"/> 

    <com.pr0.pr0.view.CustomVideoView 
     android:id="@+id/videoView" 
     android:layout_width="1px" 
     android:layout_height="1px" 
     android:layout_centerInParent="true"/> 
</RelativeLayout> 

Мой фрагмент кода:

package com.pr0.pr0.fragment; 

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.MediaController; 
import android.widget.RelativeLayout; 

import com.pr0.pr0.MainActivity; 
import com.pr0.pr0.R; 
import com.pr0.pr0.api.Post; 
import com.pr0.pr0.library.CircleProgressBar; 
import com.pr0.pr0.util.Constants; 
import com.pr0.pr0.view.CustomVideoView; 

import rx.functions.Action1; 

import static rx.android.observables.AndroidObservable.bindActivity; 

/** 
* Created by Dominik on 02.03.2015. 
*/ 
public class FullscreenVideoFragment extends Fragment{ 

    int position; 
    CustomVideoView viewVideo; 

    /** 
    * When creating, retrieve this instance's number from its arguments. 
    */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    /** 
    * The Fragment's UI is just a simple text view showing its 
    * instance number. 
    */ 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     bindActivity(MainActivity.getActivity(), Constants.api.getPostInformation(Pr0MainPageFragment.itemList.get(position).getId())).subscribe(new Action1<Post>() { 
      @Override 
      public void call(Post post) { 
       Pr0MainPageFragment.itemList.get(position).setPost(post); 
      }}); 
     View v = inflater.inflate(R.layout.fullscreen_video, container, false); 
     final CircleProgressBar progressBar = (CircleProgressBar) v.findViewById(R.id.progressVideo); 
     progressBar.setColorSchemeResources(android.R.color.holo_red_light); 
     viewVideo = (CustomVideoView) v.findViewById(R.id.videoView); 
     MediaController ctrl = new MediaController(getActivity()); 
     ctrl.setVisibility(View.GONE); 
     viewVideo.setMediaController(ctrl); 

     int padding = getActivity().getResources().getDimensionPixelSize(
       R.dimen.padding_medium); 

     //viewVideo.setPadding(padding, padding, padding, padding); 
     viewVideo.setVideoURI(Uri.parse("http://img.pr0gramm.com/" + Pr0MainPageFragment.itemList.get(position).getImage())); 
     viewVideo.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      @Override 
      public void onCompletion(MediaPlayer mp) { 
       viewVideo.seekTo(0); 
       viewVideo.start(); 
      } 
     }); 
     viewVideo.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer mp) { 
       progressBar.setVisibility(View.GONE); 
       RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
       params.addRule(RelativeLayout.CENTER_IN_PARENT); 
       viewVideo.setLayoutParams(params); 
       viewVideo.start(); 
       viewVideo.bringToFront(); 
      } 
     }); 

     progressBar.bringToFront(); 
     Log.w("Pr0", "SHOT IT"); 
     return v; 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
    } 

    public void setPosition(int position){ 
     this.position = position; 
    } 
    public static FullscreenVideoFragment newInstace(int position){ 
     FullscreenVideoFragment fragment = new FullscreenVideoFragment(); 
     fragment.setPosition(position); 
     return fragment; 
    } 

    @Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     super.setUserVisibleHint(isVisibleToUser); 
     if (this.isVisible()) 
     { 
      if (!isVisibleToUser) // If we are becoming invisible, then... 
      { 
       if(viewVideo != null){ 
        viewVideo.pause(); 
       } 
      } 

      if (isVisibleToUser) 
      { 
       if(viewVideo != null){ 
        viewVideo.start(); 
       } 
      } 

     } 

    } 
} 
+0

Ваш VideoView кажется ** Третьей стороной **. Мы ничего не можем сказать об этом. попробуйте по умолчанию один .. !! –

ответ

0

Dominik, У меня была такая же проблема, с o я решил использовать другое видео и черную линию dissappears.I использовал видео с большей шириной и высотой ... (большее видео как таковое)

Смежные вопросы