I have a problem, I have a ViewPager with fragments and I have a VideoFragment that displays a video. Everything works fine but if the video is loaded and starts playing it displays a small black line at the bottom of the View I think.
See screenshot for reference !
Here is some code, I have absolutely no idea where the bar comes from....
My Fragment Layout :
<?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>
My Fragment Code :
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();
}
}
}
}
}
Dominik,我遇到了同样的问题,所以我决定使用另一个视频,但黑线消失了。我使用了宽度和高度都更大的视频...(本质上更大的视频)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.