[video_player] Update to ExoPlayer 2.14.1 (#4141)

Update the ExoPlayer dependency to the latest version, and remove the dependency on the deprecated Bintray server. This should resolve issues with building video_player due to 403s from bintray that have been breaking presubmits for all PRs.
diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md
index 5084021..f35a198 100644
--- a/packages/video_player/video_player/CHANGELOG.md
+++ b/packages/video_player/video_player/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.1.7
+
+* Update exoplayer to 2.14.1, removing dependency on Bintray.
+
 ## 2.1.6
 
 * Remove obsolete pre-1.0 warning from README.
diff --git a/packages/video_player/video_player/android/build.gradle b/packages/video_player/video_player/android/build.gradle
index 558b412..d0ee303 100644
--- a/packages/video_player/video_player/android/build.gradle
+++ b/packages/video_player/video_player/android/build.gradle
@@ -17,12 +17,6 @@
     repositories {
         google()
         mavenCentral()
-        // Gradle versions older than 2.13.3 aren't published to the servers
-        // above, so add this URL as a workaround until upgrading past that
-        // version.
-        maven {
-            url 'https://google.bintray.com/exoplayer/'
-        }
     }
 }
 
@@ -50,10 +44,10 @@
     }
 
     dependencies {
-        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'
+        implementation 'com.google.android.exoplayer:exoplayer-core:2.14.1'
+        implementation 'com.google.android.exoplayer:exoplayer-hls:2.14.1'
+        implementation 'com.google.android.exoplayer:exoplayer-dash:2.14.1'
+        implementation 'com.google.android.exoplayer:exoplayer-smoothstreaming:2.14.1'
         testImplementation 'junit:junit:4.12'
         testImplementation 'org.mockito:mockito-inline:3.9.0'
     }
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 87784ee..887d3d1 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
@@ -16,7 +16,7 @@
 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.Player.Listener;
 import com.google.android.exoplayer2.SimpleExoPlayer;
 import com.google.android.exoplayer2.audio.AudioAttributes;
 import com.google.android.exoplayer2.source.MediaSource;
@@ -29,7 +29,6 @@
 import com.google.android.exoplayer2.upstream.DataSource;
 import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
 import com.google.android.exoplayer2.upstream.DefaultHttpDataSource;
-import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
 import com.google.android.exoplayer2.util.Util;
 import io.flutter.plugin.common.EventChannel;
 import io.flutter.view.TextureRegistry;
@@ -77,15 +76,13 @@
 
     DataSource.Factory dataSourceFactory;
     if (isHTTP(uri)) {
-      DefaultHttpDataSourceFactory httpDataSourceFactory =
-          new DefaultHttpDataSourceFactory(
-              "ExoPlayer",
-              null,
-              DefaultHttpDataSource.DEFAULT_CONNECT_TIMEOUT_MILLIS,
-              DefaultHttpDataSource.DEFAULT_READ_TIMEOUT_MILLIS,
-              true);
+      DefaultHttpDataSource.Factory httpDataSourceFactory =
+          new DefaultHttpDataSource.Factory()
+              .setUserAgent("ExoPlayer")
+              .setAllowCrossProtocolRedirects(true);
+
       if (httpHeaders != null && !httpHeaders.isEmpty()) {
-        httpDataSourceFactory.getDefaultRequestProperties().set(httpHeaders);
+        httpDataSourceFactory.setDefaultRequestProperties(httpHeaders);
       }
       dataSourceFactory = httpDataSourceFactory;
     } else {
@@ -157,7 +154,6 @@
 
   private void setupVideoPlayer(
       EventChannel eventChannel, TextureRegistry.SurfaceTextureEntry textureEntry) {
-
     eventChannel.setStreamHandler(
         new EventChannel.StreamHandler() {
           @Override
@@ -176,7 +172,7 @@
     setAudioAttributes(exoPlayer, options.mixWithOthers);
 
     exoPlayer.addListener(
-        new EventListener() {
+        new Listener() {
           private boolean isBuffering = false;
 
           public void setBuffering(boolean buffering) {
diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml
index ed78213..15b2cc9 100644
--- a/packages/video_player/video_player/pubspec.yaml
+++ b/packages/video_player/video_player/pubspec.yaml
@@ -3,7 +3,7 @@
   widgets on Android, iOS, and web.
 repository: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
-version: 2.1.6
+version: 2.1.7
 
 environment:
   sdk: ">=2.12.0 <3.0.0"