mirror of
https://gitlab.com/ultrasonic/ultrasonic.git
synced 2025-06-20 17:03:57 +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 {
|
private fun decode(data: ByteArray): Bitmap {
|
||||||
val bitmap = BitmapFactory.decodeByteArray(data, 0, data.size)
|
val bitmap = BitmapFactory.decodeByteArray(data, 0, data.size)
|
||||||
return bitmap ?: throw IllegalArgumentException("Could not decode bitmap")
|
return bitmap ?: throw IllegalArgumentException("Could not decode bitmap")
|
||||||
|
@ -12,6 +12,7 @@ import android.view.Surface
|
|||||||
import android.view.SurfaceHolder
|
import android.view.SurfaceHolder
|
||||||
import android.view.SurfaceView
|
import android.view.SurfaceView
|
||||||
import android.view.TextureView
|
import android.view.TextureView
|
||||||
|
import androidx.media3.common.AudioAttributes
|
||||||
import androidx.media3.common.MediaItem
|
import androidx.media3.common.MediaItem
|
||||||
import androidx.media3.common.MediaMetadata
|
import androidx.media3.common.MediaMetadata
|
||||||
import androidx.media3.common.PlaybackParameters
|
import androidx.media3.common.PlaybackParameters
|
||||||
@ -27,6 +28,10 @@ import androidx.media3.common.Tracks
|
|||||||
@SuppressLint("UnsafeOptInUsageError")
|
@SuppressLint("UnsafeOptInUsageError")
|
||||||
abstract class JukeboxUnimplementedFunctions : Player {
|
abstract class JukeboxUnimplementedFunctions : Player {
|
||||||
|
|
||||||
|
override fun setAudioAttributes(audioAttributes: AudioAttributes, handleAudioFocus: Boolean) {
|
||||||
|
TODO("Not yet implemented")
|
||||||
|
}
|
||||||
|
|
||||||
override fun setMediaItems(mediaItems: MutableList<MediaItem>) {
|
override fun setMediaItems(mediaItems: MutableList<MediaItem>) {
|
||||||
TODO("Not yet implemented")
|
TODO("Not yet implemented")
|
||||||
}
|
}
|
||||||
|
@ -20,10 +20,10 @@ import androidx.media3.common.C
|
|||||||
import androidx.media3.common.C.USAGE_MEDIA
|
import androidx.media3.common.C.USAGE_MEDIA
|
||||||
import androidx.media3.common.MediaItem
|
import androidx.media3.common.MediaItem
|
||||||
import androidx.media3.common.Player
|
import androidx.media3.common.Player
|
||||||
|
import androidx.media3.common.TrackSelectionParameters
|
||||||
import androidx.media3.datasource.DataSource
|
import androidx.media3.datasource.DataSource
|
||||||
import androidx.media3.datasource.ResolvingDataSource
|
import androidx.media3.datasource.ResolvingDataSource
|
||||||
import androidx.media3.datasource.okhttp.OkHttpDataSource
|
import androidx.media3.datasource.okhttp.OkHttpDataSource
|
||||||
import androidx.media3.exoplayer.DefaultRenderersFactory
|
|
||||||
import androidx.media3.exoplayer.ExoPlayer
|
import androidx.media3.exoplayer.ExoPlayer
|
||||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
|
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
|
||||||
import androidx.media3.exoplayer.source.ShuffleOrder
|
import androidx.media3.exoplayer.source.ShuffleOrder
|
||||||
@ -237,33 +237,37 @@ class PlaybackService :
|
|||||||
val cacheDataSourceFactory: DataSource.Factory =
|
val cacheDataSourceFactory: DataSource.Factory =
|
||||||
CachedDataSource.Factory(resolvingDataSource)
|
CachedDataSource.Factory(resolvingDataSource)
|
||||||
|
|
||||||
// Create a renderer with HW rendering support
|
|
||||||
val renderer = DefaultRenderersFactory(this)
|
|
||||||
|
|
||||||
if (Settings.useHwOffload) {
|
|
||||||
renderer.setEnableAudioOffload(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create the player
|
// Create the player
|
||||||
val player = ExoPlayer.Builder(this)
|
val player = ExoPlayer.Builder(this)
|
||||||
.setAudioAttributes(getAudioAttributes(), true)
|
.setAudioAttributes(getAudioAttributes(), true)
|
||||||
.setWakeMode(getWakeModeFlag())
|
.setWakeMode(getWakeModeFlag())
|
||||||
.setHandleAudioBecomingNoisy(true)
|
.setHandleAudioBecomingNoisy(true)
|
||||||
.setMediaSourceFactory(DefaultMediaSourceFactory(cacheDataSourceFactory))
|
.setMediaSourceFactory(DefaultMediaSourceFactory(cacheDataSourceFactory))
|
||||||
.setRenderersFactory(renderer)
|
|
||||||
.setSeekBackIncrementMs(Settings.seekInterval.toLong())
|
.setSeekBackIncrementMs(Settings.seekInterval.toLong())
|
||||||
.setSeekForwardIncrementMs(Settings.seekInterval.toLong())
|
.setSeekForwardIncrementMs(Settings.seekInterval.toLong())
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
// Enable audio offload
|
||||||
|
if (Settings.useHwOffload) {
|
||||||
|
player.enableOffload()
|
||||||
|
}
|
||||||
|
|
||||||
// Setup Equalizer
|
// Setup Equalizer
|
||||||
equalizer = EqualizerController.create(player.audioSessionId)
|
equalizer = EqualizerController.create(player.audioSessionId)
|
||||||
|
|
||||||
// Enable audio offload
|
return player
|
||||||
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(
|
private fun createShuffleListFromCurrentIndex(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user