Skip to content

Commit

Permalink
1.新增List+Fragment+ViewPage Demo。
Browse files Browse the repository at this point in the history
2.整理Demo,将功能分门别类。
3.其他细节优化
  • Loading branch information
Doikki committed Jan 3, 2018
1 parent 1a899d4 commit 385554d
Show file tree
Hide file tree
Showing 30 changed files with 610 additions and 88 deletions.
4 changes: 4 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,9 @@ dependencies {
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
compile "com.android.support:recyclerview-v7:$rootProject.supportLibraryVersion"
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.github.DevlinChiu:FloatWindowPermission:1.1'
compile 'com.github.ctiao:DanmakuFlameMaster:0.8.3'
compile 'com.github.ctiao:ndkbitmap-armv7a:0.8.3'
implementation "com.android.support:design:$rootProject.supportLibraryVersion"
}

16 changes: 16 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,22 @@
android:name=".activity.AutoPlayRecyclerViewActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name=".activity.ListFragmentViewPagerActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name=".activity.ApiActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name=".activity.ListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />
<activity
android:name=".activity.ExtendActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" />

<service android:name="com.dueeeke.dkplayer.BackgroundPlayService"/>

Expand Down
40 changes: 10 additions & 30 deletions app/src/main/java/com/dueeeke/dkplayer/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,10 @@
import android.widget.RadioGroup;
import android.widget.Toast;

import com.dueeeke.dkplayer.activity.DanmakuActivity;
import com.dueeeke.dkplayer.activity.FullScreenActivity;
import com.dueeeke.dkplayer.activity.ListViewActivity;
import com.dueeeke.dkplayer.activity.LivePlayerActivity;
import com.dueeeke.dkplayer.activity.ApiActivity;
import com.dueeeke.dkplayer.activity.ExtendActivity;
import com.dueeeke.dkplayer.activity.ListActivity;
import com.dueeeke.dkplayer.activity.PlayerActivity;
import com.dueeeke.dkplayer.activity.RecyclerViewActivity;
import com.dueeeke.dkplayer.activity.AutoPlayRecyclerViewActivity;
import com.dueeeke.dkplayer.activity.VodPlayerActivity;
import com.dueeeke.videoplayer.player.VideoCacheManager;
import com.dueeeke.videoplayer.util.Constants;
import com.dueeeke.videoplayer.util.KeyUtil;
Expand All @@ -38,7 +34,7 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

editText = (EditText) findViewById(R.id.et);
editText = findViewById(R.id.et);

((RadioGroup) findViewById(R.id.rg)).setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
Expand Down Expand Up @@ -83,22 +79,6 @@ public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}

public void skipToVodPlayer(View view) {
startActivity(new Intent(this, VodPlayerActivity.class));
}

public void skipToLivePlayer(View view) {
startActivity(new Intent(this, LivePlayerActivity.class));
}

public void startFullScreen(View view) {
startActivity(new Intent(this, FullScreenActivity.class));
}

public void recycler(View view) {
startActivity(new Intent(this, RecyclerViewActivity.class));
}

public void playOther(View view) {
String url = editText.getText().toString();
if (TextUtils.isEmpty(url)) return;
Expand All @@ -112,15 +92,15 @@ public void clearUrl(View view) {
editText.setText("");
}

public void danmaku(View view) {
startActivity(new Intent(this, DanmakuActivity.class));
public void api(View view) {
startActivity(new Intent(this, ApiActivity.class));
}

public void list(View view) {
startActivity(new Intent(this, ListViewActivity.class));
public void extend(View view) {
startActivity(new Intent(this, ExtendActivity.class));
}

public void recyclerAutoPlay(View view) {
startActivity(new Intent(this, AutoPlayRecyclerViewActivity.class));
public void list(View view) {
startActivity(new Intent(this, ListActivity.class));
}
}
33 changes: 33 additions & 0 deletions app/src/main/java/com/dueeeke/dkplayer/activity/ApiActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.dueeeke.dkplayer.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.dueeeke.dkplayer.R;

/**
* 基础API相关Demo
* Created by xinyu on 2018/1/3.
*/

public class ApiActivity extends AppCompatActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_api);
}

public void skipToVodPlayer(View view) {
startActivity(new Intent(this, VodPlayerActivity.class));
}

public void skipToLivePlayer(View view) {
startActivity(new Intent(this, LivePlayerActivity.class));
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,14 @@ private void autoPlayVideo(RecyclerView view) {
}
}
});

recyclerView.post(() -> {
//自动播放第一个
View view = recyclerView.getChildAt(0);
IjkVideoView ijkVideoView = view.findViewById(R.id.video_player);
ijkVideoView.start();
});

}

public List<VideoBean> getVideoList() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.dueeeke.dkplayer.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.dueeeke.dkplayer.R;

/**
* 基于IjkVideoView扩展的功能
* Created by xinyu on 2018/1/3.
*/

public class ExtendActivity extends AppCompatActivity{

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acitivity_extend);
}

public void startFullScreen(View view) {
startActivity(new Intent(this, FullScreenActivity.class));
}

public void danmaku(View view) {
startActivity(new Intent(this, DanmakuActivity.class));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
.setTitle("这是一个标题")
.setUrl("http://flv2.bn.netease.com/videolib3/1611/28/GbgsL3639/HD/movie_index.m3u8")
.setVideoController(new FullScreenController(this))
.setScreenScale(IjkVideoView.SCREEN_SCALE_16_9)
.start();
ijkVideoView.setScreenScale(IjkVideoView.SCREEN_SCALE_16_9);

}

@Override
Expand Down
40 changes: 40 additions & 0 deletions app/src/main/java/com/dueeeke/dkplayer/activity/ListActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package com.dueeeke.dkplayer.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import com.dueeeke.dkplayer.R;

/**
* List相关Demo
* Created by xinyu on 2018/1/3.
*/

public class ListActivity extends AppCompatActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
}

public void list(View view) {
startActivity(new Intent(this, ListViewActivity.class));
}

public void recyclerAutoPlay(View view) {
startActivity(new Intent(this, AutoPlayRecyclerViewActivity.class));
}

public void listFragmentViewPager(View view) {
startActivity(new Intent(this, ListFragmentViewPagerActivity.class));
}

public void recycler(View view) {
startActivity(new Intent(this, RecyclerViewActivity.class));
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
package com.dueeeke.dkplayer.activity;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;

import com.dueeeke.dkplayer.R;
import com.dueeeke.dkplayer.adapter.MyPagerAdapter;
import com.dueeeke.dkplayer.fragment.ListViewFragment;
import com.dueeeke.videoplayer.player.VideoViewManager;

import java.util.ArrayList;
import java.util.List;

/**
* 列表加ViewPager
* Created by xinyu on 2018/1/3.
*/

public class ListFragmentViewPagerActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener {

private TabLayout mTabLayout;
private ViewPager mViewPager;
private List<String> titles = new ArrayList<>();
private List<ListViewFragment> mFragmentList = new ArrayList<>();

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_fragment_view_pager);

ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle("LIST FRAGMENT VIEWPAGER");
actionBar.setDisplayHomeAsUpEnabled(true);
}
initView();
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
}
return super.onOptionsItemSelected(item);
}

private void initView() {
mTabLayout = findViewById(R.id.tl);
mViewPager = findViewById(R.id.vp);
mViewPager.addOnPageChangeListener(this);

titles.add("List1");
titles.add("List2");
titles.add("List3");

for (int i = 0; i < titles.size(); i++) {
mFragmentList.add(ListViewFragment.newInstance());
}

mViewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager(), mFragmentList, titles));
mTabLayout.setupWithViewPager(mViewPager);
}

@Override
protected void onPause() {
super.onPause();
VideoViewManager.instance().releaseVideoPlayer();
}

@Override
public void onBackPressed() {
if (!VideoViewManager.instance().onBackPressed()){
super.onBackPressed();
}
}

@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
VideoViewManager.instance().releaseVideoPlayer();
}

@Override
public void onPageScrollStateChanged(int state) {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
actionBar.setTitle("LIST");
actionBar.setDisplayHomeAsUpEnabled(true);
}
ListView listView = (ListView) findViewById(R.id.lv);
ListView listView = findViewById(R.id.lv);
listView.setAdapter(new VideoListViewAdapter(getVideoList(), this));

listView.setOnScrollListener(new AbsListView.OnScrollListener() {
Expand Down Expand Up @@ -83,7 +83,7 @@ public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCoun

private void gcView(View gcView) {
if (gcView != null) {
IjkVideoView ijkVideoView = (IjkVideoView) gcView.findViewById(R.id.video_player);
IjkVideoView ijkVideoView = gcView.findViewById(R.id.video_player);
if (ijkVideoView != null && !ijkVideoView.isFullScreen()) {
ijkVideoView.release();
}
Expand All @@ -103,10 +103,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
@Override
protected void onPause() {
super.onPause();
IjkVideoView currentVideoPlayer = (IjkVideoView) VideoViewManager.instance().getCurrentVideoPlayer();
if (currentVideoPlayer != null) {
currentVideoPlayer.release();
}
VideoViewManager.instance().releaseVideoPlayer();
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.dueeeke.dkplayer.R;
import com.dueeeke.dkplayer.widget.videoview.FloatIjkVideoView;
import com.dueeeke.videoplayer.controller.StandardVideoController;
import com.dueeeke.videoplayer.player.IjkVideoView;

/**
* 直播播放
Expand Down Expand Up @@ -104,4 +105,24 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
public void startFloatWindow(View view) {
ijkVideoView.startFloatWindow();
}

public void screenScaleDefault(View view) {
ijkVideoView.setScreenScale(IjkVideoView.SCREEN_SCALE_DEFAULT);
}

public void screenScale169(View view) {
ijkVideoView.setScreenScale(IjkVideoView.SCREEN_SCALE_16_9);
}

public void screenScale43(View view) {
ijkVideoView.setScreenScale(IjkVideoView.SCREEN_SCALE_4_3);
}

public void screenScaleOriginal(View view) {
ijkVideoView.setScreenScale(IjkVideoView.SCREEN_SCALE_ORIGINAL);
}

public void screenScaleMatch(View view) {
ijkVideoView.setScreenScale(IjkVideoView.SCREEN_SCALE_MATCH_PARENT);
}
}
Loading

0 comments on commit 385554d

Please sign in to comment.