mirror of
https://gitlab.com/ultrasonic/ultrasonic.git
synced 2025-04-13 07:57:16 +03:00
Adapt to media 1.2.0
This commit is contained in:
parent
b855e4bbe7
commit
639ef03bce
@ -46,6 +46,10 @@ class ArtworkBitmapLoader : BitmapLoader, KoinComponent {
|
||||
}
|
||||
}
|
||||
|
||||
override fun loadBitmap(uri: Uri, options: BitmapFactory.Options?): ListenableFuture<Bitmap> {
|
||||
return loadBitmap(uri)
|
||||
}
|
||||
|
||||
private fun decode(data: ByteArray): Bitmap {
|
||||
val bitmap = BitmapFactory.decodeByteArray(data, 0, data.size)
|
||||
return bitmap ?: throw IllegalArgumentException("Could not decode bitmap")
|
||||
|
@ -12,6 +12,7 @@ import android.view.Surface
|
||||
import android.view.SurfaceHolder
|
||||
import android.view.SurfaceView
|
||||
import android.view.TextureView
|
||||
import androidx.media3.common.AudioAttributes
|
||||
import androidx.media3.common.MediaItem
|
||||
import androidx.media3.common.MediaMetadata
|
||||
import androidx.media3.common.PlaybackParameters
|
||||
@ -27,6 +28,10 @@ import androidx.media3.common.Tracks
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
abstract class JukeboxUnimplementedFunctions : Player {
|
||||
|
||||
override fun setAudioAttributes(audioAttributes: AudioAttributes, handleAudioFocus: Boolean) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
override fun setMediaItems(mediaItems: MutableList<MediaItem>) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
@ -20,10 +20,10 @@ import androidx.media3.common.C
|
||||
import androidx.media3.common.C.USAGE_MEDIA
|
||||
import androidx.media3.common.MediaItem
|
||||
import androidx.media3.common.Player
|
||||
import androidx.media3.common.TrackSelectionParameters
|
||||
import androidx.media3.datasource.DataSource
|
||||
import androidx.media3.datasource.ResolvingDataSource
|
||||
import androidx.media3.datasource.okhttp.OkHttpDataSource
|
||||
import androidx.media3.exoplayer.DefaultRenderersFactory
|
||||
import androidx.media3.exoplayer.ExoPlayer
|
||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
|
||||
import androidx.media3.exoplayer.source.ShuffleOrder
|
||||
@ -237,35 +237,39 @@ class PlaybackService :
|
||||
val cacheDataSourceFactory: DataSource.Factory =
|
||||
CachedDataSource.Factory(resolvingDataSource)
|
||||
|
||||
// Create a renderer with HW rendering support
|
||||
val renderer = DefaultRenderersFactory(this)
|
||||
|
||||
if (Settings.useHwOffload) {
|
||||
renderer.setEnableAudioOffload(true)
|
||||
}
|
||||
|
||||
// Create the player
|
||||
val player = ExoPlayer.Builder(this)
|
||||
.setAudioAttributes(getAudioAttributes(), true)
|
||||
.setWakeMode(getWakeModeFlag())
|
||||
.setHandleAudioBecomingNoisy(true)
|
||||
.setMediaSourceFactory(DefaultMediaSourceFactory(cacheDataSourceFactory))
|
||||
.setRenderersFactory(renderer)
|
||||
.setSeekBackIncrementMs(Settings.seekInterval.toLong())
|
||||
.setSeekForwardIncrementMs(Settings.seekInterval.toLong())
|
||||
.build()
|
||||
|
||||
// Enable audio offload
|
||||
if (Settings.useHwOffload) {
|
||||
player.enableOffload()
|
||||
}
|
||||
|
||||
// Setup Equalizer
|
||||
equalizer = EqualizerController.create(player.audioSessionId)
|
||||
|
||||
// Enable audio offload
|
||||
if (Settings.useHwOffload) {
|
||||
player.experimentalSetOffloadSchedulingEnabled(true)
|
||||
}
|
||||
|
||||
return player
|
||||
}
|
||||
|
||||
private fun ExoPlayer.enableOffload() {
|
||||
trackSelectionParameters = trackSelectionParameters.buildUpon()
|
||||
.setAudioOffloadPreferences(
|
||||
TrackSelectionParameters.AudioOffloadPreferences
|
||||
.Builder()
|
||||
.setAudioOffloadMode(
|
||||
TrackSelectionParameters.AudioOffloadPreferences.AUDIO_OFFLOAD_MODE_ENABLED
|
||||
)
|
||||
.build()
|
||||
).build()
|
||||
}
|
||||
|
||||
private fun createShuffleListFromCurrentIndex(
|
||||
currentIndex: Int,
|
||||
length: Int,
|
||||
|
Loading…
x
Reference in New Issue
Block a user