Skip to content

Commit

Permalink
feat: updated Kotlin and ExoPlayer versions
Browse files Browse the repository at this point in the history
  • Loading branch information
jhomlala committed Nov 12, 2023
1 parent f6a77cf commit 839b85e
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 41 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 0.1.0
* Updated ExoPlayer version to 2.19.1
* Updated Kotlin version to 1.8.22.

## 0.0.83
* Updated dependencies
* Fixed Flutter 3.0 issues
Expand Down
7 changes: 4 additions & 3 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ group 'com.jhomlala.better_player.better_player'
version '1.0-SNAPSHOT'

buildscript {
ext.exoPlayerVersion = "2.17.1"
ext.exoPlayerVersion = "2.19.1"
ext.lifecycleVersion = "2.4.0-beta01"
ext.annotationVersion = "1.2.0"
ext.workVersion = "2.7.0"
ext.coreVersion = "1.6.0"
ext.gradleVersion = "7.0.2"
ext.kotlinVersion = "1.5.31"
ext.kotlinVersion = "1.8.22"

repositories {
google()
Expand All @@ -32,7 +32,7 @@ apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

android {
compileSdkVersion 31
compileSdkVersion 33

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
Expand Down Expand Up @@ -68,4 +68,5 @@ android {

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
implementation 'androidx.media3:media3-common:1.1.1'
}
54 changes: 26 additions & 28 deletions android/src/main/kotlin/com/jhomlala/better_player/BetterPlayer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,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
Expand All @@ -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
Expand Down Expand Up @@ -411,24 +408,33 @@ internal class BetterPlayer(
C.TYPE_SS -> SsMediaSource.Factory(
DefaultSsChunkSource.Factory(mediaDataSourceFactory),
DefaultDataSource.Factory(context, mediaDataSourceFactory)
)
.setDrmSessionManagerProvider(drmSessionManagerProvider)
.createMediaSource(mediaItem)
).apply{
drmSessionManagerProvider?.let{
this.setDrmSessionManagerProvider(it)
}
}.createMediaSource(mediaItem)
C.TYPE_DASH -> DashMediaSource.Factory(
DefaultDashChunkSource.Factory(mediaDataSourceFactory),
DefaultDataSource.Factory(context, mediaDataSourceFactory)
)
.setDrmSessionManagerProvider(drmSessionManagerProvider)
.createMediaSource(mediaItem)
).apply{
drmSessionManagerProvider?.let{
this.setDrmSessionManagerProvider(it)
}
}.createMediaSource(mediaItem)
C.TYPE_HLS -> HlsMediaSource.Factory(mediaDataSourceFactory)
.setDrmSessionManagerProvider(drmSessionManagerProvider)
.createMediaSource(mediaItem)
.apply{
drmSessionManagerProvider?.let{
this.setDrmSessionManagerProvider(it)
}
}.createMediaSource(mediaItem)
C.TYPE_OTHER -> ProgressiveMediaSource.Factory(
mediaDataSourceFactory,
DefaultExtractorsFactory()
)
.setDrmSessionManagerProvider(drmSessionManagerProvider)
.createMediaSource(mediaItem)
).apply{
drmSessionManagerProvider?.let{
this.setDrmSessionManagerProvider(it)
}
}.createMediaSource(mediaItem)
else -> {
throw IllegalStateException("Unsupported type: $type")
}
Expand Down Expand Up @@ -508,12 +514,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
)
}
Expand Down Expand Up @@ -707,17 +713,9 @@ 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()
)

trackSelector.setParameters(builder)
.addOverride(TrackSelectionOverride(mappedTrackInfo.getTrackGroups(rendererIndex).get(groupIndex),0))
.build()
trackSelector.parameters = builder
}
}

Expand Down
11 changes: 5 additions & 6 deletions example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,16 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 31
compileSdkVersion 33

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

lintOptions {
disable 'InvalidPackage'
}

defaultConfig {
applicationId "com.jhomlala.better_player_example"
minSdkVersion 16
targetSdkVersion 31
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
Expand All @@ -51,6 +47,9 @@ android {
signingConfig signingConfigs.debug
}
}
lint {
disable 'InvalidPackage'
}
}

flutter {
Expand Down
6 changes: 3 additions & 3 deletions example/android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
buildscript {
ext.kotlinVersion = "1.5.31"
ext.gradleVersion = "7.0.2"
ext.kotlinVersion = "1.8.22"
ext.gradleVersion = '7.3.1'
ext.multidexVersion = "2.0.1"
repositories {
google()
Expand Down Expand Up @@ -28,6 +28,6 @@ subprojects {
project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
2 changes: 1 addition & 1 deletion example/android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=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

0 comments on commit 839b85e

Please sign in to comment.