diff --git a/README.md b/README.md index 8d0a49595..b77b9f2ef 100644 --- a/README.md +++ b/README.md @@ -99,4 +99,5 @@ This plugin is based on [Chewie](https://github.com/brianegan/chewie). Chewie is This plugin development is in progress. You may encounter breaking changes each version. This plugin is developed part-time for free. If you need some feature which is supported by other players available in pub dev, then feel free to create PR. All valuable contributions are welcome! - +## Current fork fix +The ExoPlayer version has been updated to version 2.19.1. Fixed incompatibility with just_audio and video_player libraries on Android. diff --git a/android/build.gradle b/android/build.gradle index 40d3f6b57..e5bee1e8c 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,13 +2,13 @@ group 'com.jhomlala.better_player.better_player' version '1.0-SNAPSHOT' buildscript { - ext.exoPlayerVersion = "2.17.1" - ext.lifecycleVersion = "2.4.0-beta01" - ext.annotationVersion = "1.2.0" - ext.workVersion = "2.7.0" + ext.exoPlayerVersion = "2.19.1" + ext.lifecycleVersion = "2.6.0-alpha02" + ext.annotationVersion = "1.4.0" + ext.workVersion = "2.7.1" ext.coreVersion = "1.6.0" - ext.gradleVersion = "7.0.2" - ext.kotlinVersion = "1.5.31" + ext.gradleVersion = "7.3.0" + ext.kotlinVersion = "1.7.10" repositories { google() @@ -16,7 +16,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:4.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } } @@ -32,7 +32,9 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { - compileSdkVersion 31 + namespace = "com.jhomlala.better_player" + + compileSdkVersion 33 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -48,7 +50,7 @@ android { } defaultConfig { - minSdkVersion 16 + minSdkVersion 21 } dependencies { diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 29e413457..b1159fc54 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/android/src/main/kotlin/com/jhomlala/better_player/BetterPlayer.kt b/android/src/main/kotlin/com/jhomlala/better_player/BetterPlayer.kt index f5e494430..ea487dc63 100644 --- a/android/src/main/kotlin/com/jhomlala/better_player/BetterPlayer.kt +++ b/android/src/main/kotlin/com/jhomlala/better_player/BetterPlayer.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.app.NotificationChannel import android.app.NotificationManager import android.app.PendingIntent -import android.content.ComponentName import android.content.Context import android.content.Intent import android.graphics.Bitmap @@ -32,7 +31,6 @@ import com.google.android.exoplayer2.drm.FrameworkMediaDrm import com.google.android.exoplayer2.drm.UnsupportedDrmException import com.google.android.exoplayer2.drm.DummyExoMediaDrm import com.google.android.exoplayer2.drm.LocalMediaDrmCallback -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory import com.google.android.exoplayer2.source.MediaSource import com.google.android.exoplayer2.source.ClippingMediaSource import com.google.android.exoplayer2.ui.PlayerNotificationManager.MediaDescriptionAdapter @@ -42,6 +40,7 @@ import android.support.v4.media.session.PlaybackStateCompat import android.support.v4.media.MediaMetadataCompat import android.util.Log import android.view.Surface +import androidx.annotation.RequiresApi import androidx.lifecycle.Observer import com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource import com.google.android.exoplayer2.source.smoothstreaming.DefaultSsChunkSource @@ -51,14 +50,12 @@ import com.google.android.exoplayer2.source.hls.HlsMediaSource import com.google.android.exoplayer2.source.ProgressiveMediaSource import com.google.android.exoplayer2.extractor.DefaultExtractorsFactory import io.flutter.plugin.common.EventChannel.EventSink -import androidx.media.session.MediaButtonReceiver import androidx.work.Data import com.google.android.exoplayer2.* import com.google.android.exoplayer2.audio.AudioAttributes import com.google.android.exoplayer2.drm.DrmSessionManagerProvider import com.google.android.exoplayer2.ext.mediasession.MediaSessionConnector -import com.google.android.exoplayer2.trackselection.DefaultTrackSelector.SelectionOverride -import com.google.android.exoplayer2.trackselection.TrackSelectionOverrides +import com.google.android.exoplayer2.trackselection.TrackSelectionOverride import com.google.android.exoplayer2.upstream.DataSource import com.google.android.exoplayer2.upstream.DefaultDataSource import com.google.android.exoplayer2.util.Util @@ -214,6 +211,7 @@ internal class BetterPlayer( return title } + @RequiresApi(Build.VERSION_CODES.M) @SuppressLint("UnspecifiedImmutableFlag") override fun createCurrentContentIntent(player: Player): PendingIntent? { val packageName = context.applicationContext.packageName @@ -387,13 +385,13 @@ internal class BetterPlayer( if (lastPathSegment == null) { lastPathSegment = "" } - type = Util.inferContentType(lastPathSegment) + type = Util.inferContentTypeForExtension(lastPathSegment) } else { type = when (formatHint) { - FORMAT_SS -> C.TYPE_SS - FORMAT_DASH -> C.TYPE_DASH - FORMAT_HLS -> C.TYPE_HLS - FORMAT_OTHER -> C.TYPE_OTHER + FORMAT_SS -> C.CONTENT_TYPE_SS + FORMAT_DASH -> C.CONTENT_TYPE_DASH + FORMAT_HLS -> C.CONTENT_TYPE_HLS + FORMAT_OTHER -> C.CONTENT_TYPE_OTHER else -> -1 } } @@ -408,27 +406,36 @@ internal class BetterPlayer( drmSessionManagerProvider = DrmSessionManagerProvider { drmSessionManager } } return when (type) { - C.TYPE_SS -> SsMediaSource.Factory( + C.CONTENT_TYPE_SS -> SsMediaSource.Factory( DefaultSsChunkSource.Factory(mediaDataSourceFactory), DefaultDataSource.Factory(context, mediaDataSourceFactory) - ) - .setDrmSessionManagerProvider(drmSessionManagerProvider) - .createMediaSource(mediaItem) - C.TYPE_DASH -> DashMediaSource.Factory( + ).apply { + if (drmSessionManagerProvider != null) { + setDrmSessionManagerProvider(drmSessionManagerProvider!!) + } + }.createMediaSource(mediaItem) + C.CONTENT_TYPE_DASH -> DashMediaSource.Factory( DefaultDashChunkSource.Factory(mediaDataSourceFactory), DefaultDataSource.Factory(context, mediaDataSourceFactory) - ) - .setDrmSessionManagerProvider(drmSessionManagerProvider) - .createMediaSource(mediaItem) - C.TYPE_HLS -> HlsMediaSource.Factory(mediaDataSourceFactory) - .setDrmSessionManagerProvider(drmSessionManagerProvider) - .createMediaSource(mediaItem) - C.TYPE_OTHER -> ProgressiveMediaSource.Factory( + ).apply { + if (drmSessionManagerProvider != null) { + setDrmSessionManagerProvider(drmSessionManagerProvider!!) + } + }.createMediaSource(mediaItem) + C.CONTENT_TYPE_HLS -> HlsMediaSource.Factory(mediaDataSourceFactory) + .apply { + if (drmSessionManagerProvider != null) { + setDrmSessionManagerProvider(drmSessionManagerProvider!!) + } + }.createMediaSource(mediaItem) + C.CONTENT_TYPE_OTHER -> ProgressiveMediaSource.Factory( mediaDataSourceFactory, DefaultExtractorsFactory() - ) - .setDrmSessionManagerProvider(drmSessionManagerProvider) - .createMediaSource(mediaItem) + ).apply { + if (drmSessionManagerProvider != null) { + setDrmSessionManagerProvider(drmSessionManagerProvider!!) + } + }.createMediaSource(mediaItem) else -> { throw IllegalStateException("Unsupported type: $type") } @@ -508,12 +515,12 @@ internal class BetterPlayer( val audioComponent = exoPlayer?.audioComponent ?: return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { audioComponent.setAudioAttributes( - AudioAttributes.Builder().setContentType(C.CONTENT_TYPE_MOVIE).build(), + AudioAttributes.Builder().setContentType(C.AUDIO_CONTENT_TYPE_MOVIE).build(), !mixWithOthers ) } else { audioComponent.setAudioAttributes( - AudioAttributes.Builder().setContentType(C.CONTENT_TYPE_MUSIC).build(), + AudioAttributes.Builder().setContentType(C.AUDIO_CONTENT_TYPE_MUSIC).build(), !mixWithOthers ) } @@ -707,14 +714,12 @@ internal class BetterPlayer( if (mappedTrackInfo != null) { val builder = trackSelector.parameters.buildUpon() .setRendererDisabled(rendererIndex, false) - .setTrackSelectionOverrides( - TrackSelectionOverrides.Builder().addOverride( - TrackSelectionOverrides.TrackSelectionOverride( - mappedTrackInfo.getTrackGroups( - rendererIndex - ).get(groupIndex) - ) - ).build() + .addOverride( + TrackSelectionOverride( + mappedTrackInfo.getTrackGroups(rendererIndex).get(groupIndex), + mappedTrackInfo.getTrackGroups(rendererIndex) + .indexOf(mappedTrackInfo.getTrackGroups(rendererIndex).get(groupIndex)) + ) ) trackSelector.setParameters(builder) @@ -771,8 +776,8 @@ internal class BetterPlayer( //Clear cache without accessing BetterPlayerCache. fun clearCache(context: Context?, result: MethodChannel.Result) { try { - context?.let { context -> - val file = File(context.cacheDir, "betterPlayerCache") + context?.let { + val file = File(it.cacheDir, "betterPlayerCache") deleteDirectory(file) } result.success(null) diff --git a/example/pubspec.lock b/example/pubspec.lock new file mode 100644 index 000000000..97f6b1076 --- /dev/null +++ b/example/pubspec.lock @@ -0,0 +1,446 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + better_player: + dependency: "direct main" + description: + path: ".." + relative: true + source: path + version: "0.0.84" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: "direct main" + description: + name: collection + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + url: "https://pub.dev" + source: hosted + version: "1.19.0" + csslib: + dependency: transitive + description: + name: csslib + sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + cupertino_icons: + dependency: transitive + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dbus: + dependency: transitive + description: + name: dbus + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + url: "https://pub.dev" + source: hosted + version: "0.7.10" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_localizations: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_widget_from_html_core: + dependency: transitive + description: + name: flutter_widget_from_html_core + sha256: b1048fd119a14762e2361bd057da608148a895477846d6149109b2151d2f7abf + url: "https://pub.dev" + source: hosted + version: "0.15.2" + html: + dependency: transitive + description: + name: html + sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + url: "https://pub.dev" + source: hosted + version: "0.15.4" + http: + dependency: transitive + description: + name: http + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 + url: "https://pub.dev" + source: hosted + version: "1.2.2" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + intl: + dependency: transitive + description: + name: intl + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + url: "https://pub.dev" + source: hosted + version: "0.19.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" + url: "https://pub.dev" + source: hosted + version: "10.0.7" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" + url: "https://pub.dev" + source: hosted + version: "3.0.8" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" + source: hosted + version: "1.15.0" + package_info_plus: + dependency: transitive + description: + name: package_info_plus + sha256: a75164ade98cb7d24cfd0a13c6408927c6b217fa60dee5a7ff5c116a58f28918 + url: "https://pub.dev" + source: hosted + version: "8.0.2" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: ac1f4a4847f1ade8e6a87d1f39f5d7c67490738642e2542f559ec38c37489a66 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + url: "https://pub.dev" + source: hosted + version: "2.1.4" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" + url: "https://pub.dev" + source: hosted + version: "2.2.10" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" + source: hosted + version: "2.4.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" + source: hosted + version: "6.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + url: "https://pub.dev" + source: hosted + version: "0.7.3" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + visibility_detector: + dependency: "direct main" + description: + name: visibility_detector + sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420 + url: "https://pub.dev" + source: hosted + version: "0.4.0+2" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b + url: "https://pub.dev" + source: hosted + version: "14.3.0" + wakelock_plus: + dependency: transitive + description: + name: wakelock_plus + sha256: bf4ee6f17a2fa373ed3753ad0e602b7603f8c75af006d5b9bdade263928c0484 + url: "https://pub.dev" + source: hosted + version: "1.2.8" + wakelock_plus_platform_interface: + dependency: transitive + description: + name: wakelock_plus_platform_interface + sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + web: + dependency: transitive + description: + name: web + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + win32: + dependency: transitive + description: + name: win32 + sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" + url: "https://pub.dev" + source: hosted + version: "5.5.4" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" +sdks: + dart: ">=3.4.1 <4.0.0" + flutter: ">=3.22.0" diff --git a/example/pubspec_overrides.yaml b/example/pubspec_overrides.yaml new file mode 100644 index 000000000..8e86a9787 --- /dev/null +++ b/example/pubspec_overrides.yaml @@ -0,0 +1,4 @@ +# melos_managed_dependency_overrides: better_player +dependency_overrides: + better_player: + path: .. diff --git a/lib/src/core/better_player_controller.dart b/lib/src/core/better_player_controller.dart index d1a53bc31..bbb9fd761 100644 --- a/lib/src/core/better_player_controller.dart +++ b/lib/src/core/better_player_controller.dart @@ -1260,7 +1260,7 @@ class BetterPlayerController { ///cache started for given [betterPlayerDataSource] then it will be ignored. Future stopPreCache( BetterPlayerDataSource betterPlayerDataSource) async { - return VideoPlayerController?.stopPreCache(betterPlayerDataSource.url, + return VideoPlayerController.stopPreCache(betterPlayerDataSource.url, betterPlayerDataSource.cacheConfiguration?.key); } diff --git a/lib/src/hls/hls_parser/drm_init_data.dart b/lib/src/hls/hls_parser/drm_init_data.dart index dbca2a269..d21d8e66a 100644 --- a/lib/src/hls/hls_parser/drm_init_data.dart +++ b/lib/src/hls/hls_parser/drm_init_data.dart @@ -1,6 +1,4 @@ import 'package:collection/collection.dart'; -import 'package:flutter/cupertino.dart'; - import 'scheme_data.dart'; class DrmInitData { @@ -19,5 +17,5 @@ class DrmInitData { } @override - int get hashCode => hashValues(schemeType, schemeData); + int get hashCode => Object.hash(schemeType, schemeData); } diff --git a/lib/src/hls/hls_parser/hls_track_metadata_entry.dart b/lib/src/hls/hls_parser/hls_track_metadata_entry.dart index 9d7d215a6..a07d873eb 100644 --- a/lib/src/hls/hls_parser/hls_track_metadata_entry.dart +++ b/lib/src/hls/hls_parser/hls_track_metadata_entry.dart @@ -1,6 +1,5 @@ import 'package:better_player/src/hls/hls_parser/variant_info.dart'; import 'package:collection/collection.dart'; -import 'package:flutter/rendering.dart'; class HlsTrackMetadataEntry { HlsTrackMetadataEntry({this.groupId, this.name, this.variantInfos}); @@ -28,5 +27,5 @@ class HlsTrackMetadataEntry { } @override - int get hashCode => hashValues(groupId, name, variantInfos); + int get hashCode => Object.hash(groupId, name, variantInfos); } diff --git a/lib/src/hls/hls_parser/scheme_data.dart b/lib/src/hls/hls_parser/scheme_data.dart index 49557dde0..53dfe112c 100644 --- a/lib/src/hls/hls_parser/scheme_data.dart +++ b/lib/src/hls/hls_parser/scheme_data.dart @@ -1,7 +1,5 @@ import 'dart:typed_data'; -import 'package:flutter/material.dart'; - class SchemeData { SchemeData({ // @required this.uuid, @@ -49,7 +47,7 @@ class SchemeData { } @override - int get hashCode => hashValues( + int get hashCode => Object.hash( /*uuid, */ licenseServerUrl, mimeType, diff --git a/lib/src/hls/hls_parser/variant_info.dart b/lib/src/hls/hls_parser/variant_info.dart index 74c4ecb38..393ebb310 100644 --- a/lib/src/hls/hls_parser/variant_info.dart +++ b/lib/src/hls/hls_parser/variant_info.dart @@ -1,5 +1,3 @@ -import 'package:flutter/material.dart'; - class VariantInfo { VariantInfo({ this.bitrate, @@ -41,6 +39,6 @@ class VariantInfo { } @override - int get hashCode => hashValues( + int get hashCode => Object.hash( bitrate, videoGroupId, audioGroupId, subtitleGroupId, captionGroupId); } diff --git a/pubspec.lock b/pubspec.lock index 11837d5a6..437cb1c77 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -45,10 +45,10 @@ packages: dependency: "direct main" description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" csslib: dependency: transitive description: @@ -161,18 +161,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -209,18 +209,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" meta: dependency: "direct main" description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" package_info_plus: dependency: transitive description: @@ -329,7 +329,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_span: dependency: transitive description: @@ -342,10 +342,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" stream_channel: dependency: transitive description: @@ -358,10 +358,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" term_glyph: dependency: transitive description: @@ -374,10 +374,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.3" typed_data: dependency: transitive description: @@ -406,10 +406,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.3.0" wakelock_plus: dependency: "direct main" description: