Skip to content

Commit a1cae28

Browse files
committed
update exoplayer version,exoplayer support user-agent setting
1 parent 6ef2675 commit a1cae28

File tree

5 files changed

+31
-29
lines changed

5 files changed

+31
-29
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ dependencies {
8888
//---------如果使用ExoPlayer解码,使用以下依赖。---------
8989
//该依赖包含exoplayer解码和MediaPlayer解码
9090
//注意exoplayer的最小支持SDK版本为16
91-
implementation 'cn.jiajunhui:exoplayer:336_291_010'
91+
implementation 'cn.jiajunhui:exoplayer:336_2111_011'
9292
9393
9494
//---------如果使用ijkPlayer解码,使用以下依赖。---------

app/src/main/java/com/kk/taurus/avplayer/ui/BaseVideoViewActivity.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import android.widget.RelativeLayout;
1414
import android.widget.Toast;
1515

16+
import com.kk.taurus.avplayer.App;
1617
import com.kk.taurus.avplayer.R;
1718
import com.kk.taurus.avplayer.cover.ControllerCover;
1819
import com.kk.taurus.avplayer.play.DataInter;
@@ -21,6 +22,7 @@
2122
import com.kk.taurus.avplayer.utils.PUtil;
2223
import com.kk.taurus.playerbase.assist.InterEvent;
2324
import com.kk.taurus.playerbase.assist.OnVideoViewEventHandler;
25+
import com.kk.taurus.playerbase.config.PlayerConfig;
2426
import com.kk.taurus.playerbase.entity.DataSource;
2527
import com.kk.taurus.playerbase.event.OnPlayerEventListener;
2628
import com.kk.taurus.playerbase.player.IPlayer;
@@ -187,22 +189,19 @@ public void onItemClick(SettingAdapter.SettingItemHolder holder, SettingItem ite
187189
mVideoView.setAspectRatio(AspectRatio.AspectRatio_ORIGIN);
188190
break;
189191
case SettingItem.CODE_PLAYER_MEDIA_PLAYER:
190-
replay();
191-
// if(mVideoView.switchDecoder(PlayerConfig.DEFAULT_PLAN_ID)){
192-
// replay();
193-
// }
192+
if(mVideoView.switchDecoder(PlayerConfig.DEFAULT_PLAN_ID)){
193+
replay();
194+
}
194195
break;
195196
case SettingItem.CODE_PLAYER_IJK_PLAYER:
196-
replay();
197-
// if(mVideoView.switchDecoder(App.PLAN_ID_IJK)){
198-
// replay();
199-
// }
197+
if(mVideoView.switchDecoder(App.PLAN_ID_IJK)){
198+
replay();
199+
}
200200
break;
201201
case SettingItem.CODE_PLAYER_EXO_PLAYER:
202-
replay();
203-
// if(mVideoView.switchDecoder(App.PLAN_ID_EXO)){
204-
// replay();
205-
// }
202+
if(mVideoView.switchDecoder(App.PLAN_ID_EXO)){
203+
replay();
204+
}
206205
break;
207206
case SettingItem.CODE_SPEED_0_5:
208207
mVideoView.setSpeed(0.5f);

exoplayer/bintray.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.github.dcendents.android-maven'
22
apply plugin: 'com.jfrog.bintray'
33

44
// 这个version是区分library版本的,因此当我们需要更新library时记得修改这个version
5-
version = "336_291_010"
5+
version = "336_2111_011"
66

77
def siteUrl = 'https://github.com/jiajunhui/PlayerBase' // 项目的主页
88
def gitUrl = 'https://github.com/jiajunhui/PlayerBase.git' // Git仓库的url

exoplayer/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ android {
3030
dependencies {
3131
implementation fileTree(include: ['*.jar'], dir: 'libs')
3232

33-
api 'com.google.android.exoplayer:exoplayer-core:2.9.1'
34-
api 'com.google.android.exoplayer:exoplayer-dash:2.9.1'
35-
api 'com.google.android.exoplayer:exoplayer-hls:2.9.1'
36-
api 'com.google.android.exoplayer:exoplayer-smoothstreaming:2.9.1'
33+
api 'com.google.android.exoplayer:exoplayer-core:2.11.1'
34+
api 'com.google.android.exoplayer:exoplayer-dash:2.11.1'
35+
api 'com.google.android.exoplayer:exoplayer-hls:2.11.1'
36+
api 'com.google.android.exoplayer:exoplayer-smoothstreaming:2.11.1'
3737
api 'com.kk.taurus.playerbase:playerbase:3.3.6'
3838
// api project(':playerbase')
3939
}

exoplayer/src/main/java/com/kk/taurus/exoplayer/ExoMediaPlayer.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import com.google.android.exoplayer2.C;
2727
import com.google.android.exoplayer2.DefaultRenderersFactory;
2828
import com.google.android.exoplayer2.ExoPlaybackException;
29-
import com.google.android.exoplayer2.ExoPlayerFactory;
3029
import com.google.android.exoplayer2.Format;
3130
import com.google.android.exoplayer2.PlaybackParameters;
3231
import com.google.android.exoplayer2.Player;
@@ -99,11 +98,12 @@ public ExoMediaPlayer(){
9998
mAppContext = AppContextAttach.getApplicationContext();
10099
RenderersFactory renderersFactory = new DefaultRenderersFactory(mAppContext);
101100
DefaultTrackSelector trackSelector =
102-
new DefaultTrackSelector();
103-
mInternalPlayer = ExoPlayerFactory.newSimpleInstance(mAppContext, renderersFactory, trackSelector);
101+
new DefaultTrackSelector(mAppContext);
102+
mInternalPlayer = new SimpleExoPlayer.Builder(mAppContext, renderersFactory)
103+
.setTrackSelector(trackSelector).build();
104104

105105
// Measures bandwidth during playback. Can be null if not required.
106-
mBandwidthMeter = new DefaultBandwidthMeter();
106+
mBandwidthMeter = new DefaultBandwidthMeter.Builder(mAppContext).build();
107107

108108
mInternalPlayer.addListener(mEventListener);
109109

@@ -151,18 +151,21 @@ public void setDataSource(DataSource dataSource) {
151151
return;
152152
}
153153

154-
//create DefaultDataSourceFactory
155-
com.google.android.exoplayer2.upstream.DataSource.Factory dataSourceFactory =
156-
new DefaultDataSourceFactory(mAppContext,
157-
Util.getUserAgent(mAppContext, mAppContext.getPackageName()), mBandwidthMeter);
158-
159154
//if scheme is http or https and DataSource contain extra data, use DefaultHttpDataSourceFactory.
160155
String scheme = videoUri.getScheme();
161156
HashMap<String, String> extra = dataSource.getExtra();
157+
//setting user-agent from extra data
158+
String settingUserAgent = extra!=null?extra.get("User-Agent"):"";
159+
//if not setting, use default user-agent
160+
String userAgent = !TextUtils.isEmpty(settingUserAgent)?settingUserAgent:Util.getUserAgent(mAppContext, mAppContext.getPackageName());
161+
//create DefaultDataSourceFactory
162+
com.google.android.exoplayer2.upstream.DataSource.Factory dataSourceFactory =
163+
new DefaultDataSourceFactory(mAppContext,
164+
userAgent, mBandwidthMeter);
162165
if(extra!=null && extra.size()>0 &&
163166
("http".equalsIgnoreCase(scheme)||"https".equalsIgnoreCase(scheme))){
164167
dataSourceFactory = new DefaultHttpDataSourceFactory(
165-
Util.getUserAgent(mAppContext, mAppContext.getPackageName()),
168+
userAgent,
166169
DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
167170
DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS,
168171
true);
@@ -180,7 +183,7 @@ public void setDataSource(DataSource dataSource) {
180183
if(timedTextSource!=null){
181184
Format format = Format.createTextSampleFormat(null, timedTextSource.getMimeType(), timedTextSource.getFlag(), null);
182185
MediaSource timedTextMediaSource = new SingleSampleMediaSource.Factory(new DefaultDataSourceFactory(mAppContext,
183-
Util.getUserAgent(mAppContext, mAppContext.getPackageName())))
186+
userAgent))
184187
.createMediaSource(Uri.parse(timedTextSource.getPath()), format, C.TIME_UNSET);
185188
//merge MediaSource and timedTextMediaSource.
186189
mediaSource = new MergingMediaSource(mediaSource, timedTextMediaSource);

0 commit comments

Comments
 (0)