[video_player] Upgrade ExoPlayer (#3204)
* ExoPlayer
* Format
* update gradle
diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md
index 01601c7..7873939 100644
--- a/packages/video_player/video_player/CHANGELOG.md
+++ b/packages/video_player/video_player/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.11.1+3
+
+* Android: Upgrade ExoPlayer to 2.12.1.
+
## 0.11.1+2
* Update android compileSdkVersion to 29.
diff --git a/packages/video_player/video_player/android/build.gradle b/packages/video_player/video_player/android/build.gradle
index 50636ae..08a240b 100644
--- a/packages/video_player/video_player/android/build.gradle
+++ b/packages/video_player/video_player/android/build.gradle
@@ -9,7 +9,7 @@
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.3.0'
+ classpath 'com.android.tools.build:gradle:3.5.0'
}
}
@@ -44,9 +44,9 @@
}
dependencies {
- implementation 'com.google.android.exoplayer:exoplayer-core:2.9.6'
- implementation 'com.google.android.exoplayer:exoplayer-hls:2.9.6'
- implementation 'com.google.android.exoplayer:exoplayer-dash:2.9.6'
- implementation 'com.google.android.exoplayer:exoplayer-smoothstreaming:2.9.6'
+ implementation 'com.google.android.exoplayer:exoplayer-core:2.12.1'
+ implementation 'com.google.android.exoplayer:exoplayer-hls:2.12.1'
+ implementation 'com.google.android.exoplayer:exoplayer-dash:2.12.1'
+ implementation 'com.google.android.exoplayer:exoplayer-smoothstreaming:2.12.1'
}
}
diff --git a/packages/video_player/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java b/packages/video_player/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java
index 8f8c898..33c2f42 100644
--- a/packages/video_player/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java
+++ b/packages/video_player/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayer.java
@@ -9,23 +9,20 @@
import android.view.Surface;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlaybackException;
-import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.Format;
+import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.Player.EventListener;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.audio.AudioAttributes;
-import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory;
-import com.google.android.exoplayer2.source.ExtractorMediaSource;
import com.google.android.exoplayer2.source.MediaSource;
+import com.google.android.exoplayer2.source.ProgressiveMediaSource;
import com.google.android.exoplayer2.source.dash.DashMediaSource;
import com.google.android.exoplayer2.source.dash.DefaultDashChunkSource;
import com.google.android.exoplayer2.source.hls.HlsMediaSource;
import com.google.android.exoplayer2.source.smoothstreaming.DefaultSsChunkSource;
import com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource;
-import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
-import com.google.android.exoplayer2.trackselection.TrackSelector;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.upstream.DefaultHttpDataSource;
@@ -70,8 +67,7 @@
this.textureEntry = textureEntry;
this.options = options;
- TrackSelector trackSelector = new DefaultTrackSelector();
- exoPlayer = ExoPlayerFactory.newSimpleInstance(context, trackSelector);
+ exoPlayer = new SimpleExoPlayer.Builder(context).build();
Uri uri = Uri.parse(dataSource);
@@ -89,7 +85,8 @@
}
MediaSource mediaSource = buildMediaSource(uri, dataSourceFactory, formatHint, context);
- exoPlayer.prepare(mediaSource);
+ exoPlayer.setMediaSource(mediaSource);
+ exoPlayer.prepare();
setupVideoPlayer(eventChannel, textureEntry);
}
@@ -131,18 +128,18 @@
return new SsMediaSource.Factory(
new DefaultSsChunkSource.Factory(mediaDataSourceFactory),
new DefaultDataSourceFactory(context, null, mediaDataSourceFactory))
- .createMediaSource(uri);
+ .createMediaSource(MediaItem.fromUri(uri));
case C.TYPE_DASH:
return new DashMediaSource.Factory(
new DefaultDashChunkSource.Factory(mediaDataSourceFactory),
new DefaultDataSourceFactory(context, null, mediaDataSourceFactory))
- .createMediaSource(uri);
+ .createMediaSource(MediaItem.fromUri(uri));
case C.TYPE_HLS:
- return new HlsMediaSource.Factory(mediaDataSourceFactory).createMediaSource(uri);
+ return new HlsMediaSource.Factory(mediaDataSourceFactory)
+ .createMediaSource(MediaItem.fromUri(uri));
case C.TYPE_OTHER:
- return new ExtractorMediaSource.Factory(mediaDataSourceFactory)
- .setExtractorsFactory(new DefaultExtractorsFactory())
- .createMediaSource(uri);
+ return new ProgressiveMediaSource.Factory(mediaDataSourceFactory)
+ .createMediaSource(MediaItem.fromUri(uri));
default:
{
throw new IllegalStateException("Unsupported type: " + type);
@@ -174,7 +171,7 @@
new EventListener() {
@Override
- public void onPlayerStateChanged(final boolean playWhenReady, final int playbackState) {
+ public void onPlaybackStateChanged(final int playbackState) {
if (playbackState == Player.STATE_BUFFERING) {
sendBufferingUpdate();
} else if (playbackState == Player.STATE_READY) {
diff --git a/packages/video_player/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java b/packages/video_player/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java
index 1beb79c..4ea6a83 100644
--- a/packages/video_player/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java
+++ b/packages/video_player/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java
@@ -138,7 +138,6 @@
"asset:///" + assetLookupKey,
null,
options);
- videoPlayers.put(handle.id(), player);
} else {
player =
new VideoPlayer(
@@ -148,8 +147,8 @@
arg.getUri(),
arg.getFormatHint(),
options);
- videoPlayers.put(handle.id(), player);
}
+ videoPlayers.put(handle.id(), player);
TextureMessage result = new TextureMessage();
result.setTextureId(handle.id());
diff --git a/packages/video_player/video_player/example/android/app/build.gradle b/packages/video_player/video_player/example/android/app/build.gradle
index 2ab52e1..13fabc7 100644
--- a/packages/video_player/video_player/example/android/app/build.gradle
+++ b/packages/video_player/video_player/example/android/app/build.gradle
@@ -34,7 +34,7 @@
defaultConfig {
applicationId "io.flutter.plugins.videoplayerexample"
minSdkVersion 16
- targetSdkVersion 28
+ targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/packages/video_player/video_player/example/android/build.gradle b/packages/video_player/video_player/example/android/build.gradle
index 112aa2a..498448e 100644
--- a/packages/video_player/video_player/example/android/build.gradle
+++ b/packages/video_player/video_player/example/android/build.gradle
@@ -5,7 +5,7 @@
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.3.0'
+ classpath 'com.android.tools.build:gradle:3.5.0'
}
}
diff --git a/packages/video_player/video_player/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/video_player/video_player/example/android/gradle/wrapper/gradle-wrapper.properties
index 2819f02..296b146 100644
--- a/packages/video_player/video_player/example/android/gradle/wrapper/gradle-wrapper.properties
+++ b/packages/video_player/video_player/example/android/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml
index 96ced42..26686cc 100644
--- a/packages/video_player/video_player/pubspec.yaml
+++ b/packages/video_player/video_player/pubspec.yaml
@@ -4,7 +4,7 @@
# 0.10.y+z is compatible with 1.0.0, if you land a breaking change bump
# the version to 2.0.0.
# See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0
-version: 0.11.1+2
+version: 0.11.1+3
homepage: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player
flutter: