mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 18:00:02 +01:00
Update AndroidX Media3 to 1.2.1.
This commit is contained in:
committed by
Greyson Parrelli
parent
69c864f984
commit
ac0812a6dd
@@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.components.voice
|
||||
import android.content.Context
|
||||
import androidx.annotation.OptIn
|
||||
import androidx.media3.common.util.UnstableApi
|
||||
import androidx.media3.exoplayer.audio.AudioCapabilities
|
||||
import androidx.media3.exoplayer.audio.AudioSink
|
||||
import androidx.media3.exoplayer.audio.DefaultAudioSink
|
||||
import org.signal.core.util.logging.Log
|
||||
@@ -19,12 +18,9 @@ class RetryableInitAudioSink(
|
||||
context: Context,
|
||||
enableFloatOutput: Boolean,
|
||||
enableAudioTrackPlaybackParams: Boolean,
|
||||
enableOffload: Boolean,
|
||||
val delegate: AudioSink = DefaultAudioSink.Builder()
|
||||
.setAudioCapabilities(AudioCapabilities.getCapabilities(context))
|
||||
val delegate: AudioSink = DefaultAudioSink.Builder(context)
|
||||
.setEnableFloatOutput(enableFloatOutput)
|
||||
.setEnableAudioTrackPlaybackParams(enableAudioTrackPlaybackParams)
|
||||
.setOffloadMode(if (enableOffload) DefaultAudioSink.OFFLOAD_MODE_ENABLED_GAPLESS_REQUIRED else DefaultAudioSink.OFFLOAD_MODE_DISABLED)
|
||||
.build()
|
||||
) : AudioSink by delegate {
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.thoughtcrime.securesms.video.exo.SignalMediaSourceFactory
|
||||
@OptIn(UnstableApi::class)
|
||||
class VoiceNotePlayer @JvmOverloads constructor(
|
||||
context: Context,
|
||||
private val internalPlayer: ExoPlayer = ExoPlayer.Builder(context)
|
||||
internalPlayer: ExoPlayer = ExoPlayer.Builder(context)
|
||||
.setRenderersFactory(WorkaroundRenderersFactory(context))
|
||||
.setMediaSourceFactory(SignalMediaSourceFactory(context))
|
||||
.setLoadControl(
|
||||
@@ -35,13 +35,6 @@ class VoiceNotePlayer @JvmOverloads constructor(
|
||||
setAudioAttributes(AudioAttributes.Builder().setContentType(C.AUDIO_CONTENT_TYPE_MUSIC).setUsage(C.USAGE_MEDIA).build(), true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Required to expose this because this is unique to [ExoPlayer], not the generic [androidx.media3.common.Player] interface.
|
||||
*/
|
||||
fun setAudioAttributes(audioAttributes: AudioAttributes, handleAudioFocus: Boolean) {
|
||||
internalPlayer.setAudioAttributes(audioAttributes, handleAudioFocus)
|
||||
}
|
||||
|
||||
override fun seekTo(windowIndex: Int, positionMs: Long) {
|
||||
super.seekTo(windowIndex, positionMs)
|
||||
|
||||
@@ -66,7 +59,8 @@ class VoiceNotePlayer @JvmOverloads constructor(
|
||||
*/
|
||||
@OptIn(androidx.media3.common.util.UnstableApi::class)
|
||||
class WorkaroundRenderersFactory(val context: Context) : DefaultRenderersFactory(context) {
|
||||
override fun buildAudioSink(context: Context, enableFloatOutput: Boolean, enableAudioTrackPlaybackParams: Boolean, enableOffload: Boolean): AudioSink? {
|
||||
return RetryableInitAudioSink(context, enableFloatOutput, enableAudioTrackPlaybackParams, enableOffload)
|
||||
|
||||
override fun buildAudioSink(context: Context, enableFloatOutput: Boolean, enableAudioTrackPlaybackParams: Boolean): AudioSink {
|
||||
return RetryableInitAudioSink(context, enableFloatOutput, enableAudioTrackPlaybackParams)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user