我正在使用 ViewPager2 在来自摄像机的 MediaPlayer (libVLC) 视频流中播放。当我向前滑动时,一切正常。但是当我向后滑动时,Fragment only 声音和 TextView 中没有视频。
这是Fragment的代码
`public class PageFragment extends Fragment{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mediaPlayer = new MediaPlayer[3];
pageNumber = getArguments() != null ? getArguments().getInt("num") : 1;
libVlc = new LibVLC(getActivity());
mediaPlayer[pageNumber] = new MediaPlayer(libVlc);
urls = getResources().getStringArray(R.array.urls);
}
@Override
public void onResume() {
super.onResume();
if (!mediaPlayer[pageNumber].isPlaying()) {
mediaPlayer[pageNumber].play();
int st=mediaPlayer[pageNumber].getPlayerState();
Log.i("Play"+pageNumber, String.valueOf(st));
}
}
@Override
public void onPause() {
super.onPause();
if (mediaPlayer[pageNumber]!=null && mediaPlayer[pageNumber].isPlaying()) {
mediaPlayer[pageNumber].pause();
int st=mediaPlayer[pageNumber].getPlayerState();
Log.i("Pause"+pageNumber, String.valueOf(st));
}
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View result=inflater.inflate(R.layout.fragment_page, container, false);
TextView pageHeader = result.findViewById(R.id.displayText);
String header = "Camera " + (pageNumber+1);
pageHeader.setText(header);
videoLayout = result.findViewById(R.id.videoLayout);
mediaPlayer[pageNumber].attachViews(videoLayout, null, false, false);
Media media = new Media(libVlc, Uri.parse(urls[pageNumber]));
media.setHWDecoderEnabled(true, false);
media.addOption(":network-caching=600");
mediaPlayer[pageNumber].setMedia(media);
media.release();
mediaPlayer[pageNumber].play();
return result;
}
.....
}
这里是 Fragment 的布局
<TextView
android:id="@+id/displayText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="500dp"
android:textSize="22sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"/>
<org.videolan.libvlc.util.VLCVideoLayout
android:id="@+id/videoLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/displayText"
android:layout_marginTop="50dp"/>
当 MainActivity 进入暂停状态然后返回前台时,也会发生同样的情况。
知道一些人如何解决这个麻烦吗? 谢谢你。
在这些情况下LibVLC会被丢弃,您需要更新libvlc对象。