init
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
package com.uiui.videoplayer.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.recyclerview.widget.OrientationHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.uiui.videoplayer.CustomJzvd.JzvdStdAssert;
|
||||
import com.uiui.videoplayer.CustomJzvd.JzvdStdTikTok;
|
||||
import com.uiui.videoplayer.R;
|
||||
import com.uiui.videoplayer.adapter.TikTokRecyclerViewAdapter;
|
||||
import com.uiui.videoplayer.base.ViewPagerLayoutManager;
|
||||
import com.uiui.videoplayer.listener.OnViewPagerListener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import cn.jzvd.Jzvd;
|
||||
|
||||
public class ActivityTikTok extends AppCompatActivity {
|
||||
|
||||
private RecyclerView rvTiktok;
|
||||
private TikTokRecyclerViewAdapter mAdapter;
|
||||
private ViewPagerLayoutManager mViewPagerLayoutManager;
|
||||
private int mCurrentPosition = -1;
|
||||
private int position = 0;
|
||||
private List<String> videoPath = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
|
||||
WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
||||
|
||||
setContentView(R.layout.activity_tiktok);
|
||||
Intent intent = getIntent();
|
||||
if (null != intent) {
|
||||
position = intent.getIntExtra("position", 0);
|
||||
videoPath = intent.getStringArrayListExtra("list");
|
||||
}
|
||||
rvTiktok = findViewById(R.id.rv_tiktok);
|
||||
|
||||
mAdapter = new TikTokRecyclerViewAdapter(this,videoPath );
|
||||
mViewPagerLayoutManager = new ViewPagerLayoutManager(this, OrientationHelper.VERTICAL);
|
||||
rvTiktok.setLayoutManager(mViewPagerLayoutManager);
|
||||
rvTiktok.setAdapter(mAdapter);
|
||||
rvTiktok.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
|
||||
}
|
||||
});
|
||||
mViewPagerLayoutManager.setOnViewPagerListener(new OnViewPagerListener() {
|
||||
@Override
|
||||
public void onInitComplete() {
|
||||
//自动播放第一条
|
||||
autoPlayVideo(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageRelease(boolean isNext, int position) {
|
||||
if (mCurrentPosition == position) {
|
||||
Jzvd.releaseAllVideos();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position, boolean isBottom) {
|
||||
if (mCurrentPosition == position) {
|
||||
return;
|
||||
}
|
||||
autoPlayVideo(position);
|
||||
mCurrentPosition = position;
|
||||
}
|
||||
});
|
||||
|
||||
rvTiktok.addOnChildAttachStateChangeListener(new RecyclerView.OnChildAttachStateChangeListener() {
|
||||
@Override
|
||||
public void onChildViewAttachedToWindow(View view) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChildViewDetachedFromWindow(View view) {
|
||||
Jzvd jzvd = view.findViewById(R.id.videoplayer);
|
||||
if (jzvd != null && Jzvd.CURRENT_JZVD != null && jzvd.jzDataSource != null &&
|
||||
jzvd.jzDataSource.containsTheUrl(Jzvd.CURRENT_JZVD.jzDataSource.getCurrentUrl())) {
|
||||
if (Jzvd.CURRENT_JZVD != null && Jzvd.CURRENT_JZVD.screen != Jzvd.SCREEN_FULLSCREEN) {
|
||||
Jzvd.releaseAllVideos();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void autoPlayVideo(int postion) {
|
||||
if (rvTiktok == null || rvTiktok.getChildAt(0) == null) {
|
||||
return;
|
||||
}
|
||||
JzvdStdAssert player = rvTiktok.getChildAt(0).findViewById(R.id.videoplayer);
|
||||
if (player != null) {
|
||||
player.startVideoAfterPreloading();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if (Jzvd.backPress()) {
|
||||
return;
|
||||
}
|
||||
super.onBackPressed();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
Jzvd.releaseAllVideos();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home:
|
||||
finish();
|
||||
break;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user