Проблема управления громкости JetPack Media3 на Samsung S24 (Android 14)Android

Форум для тех, кто программирует под Android
Anonymous
Проблема управления громкости JetPack Media3 на Samsung S24 (Android 14)

Сообщение Anonymous »

В настоящее время я разрабатываю пользовательское приложение для сигнализации с использованием библиотеки Android JetPack Media3, в частности, версия 1.4.1. Я заметил, что когда дело доходит до управления громкостью звукового потока, я могу отрегулировать громкость на все мои доступные физические устройства и эмуляторы - , кроме на моем Samsung S24. На этом конкретном устройстве я не могу изменить громкость в любой форме, будь то с помощью программного управления или с помощью кнопок физического громкости. Трекер:
https://issuetracker.google.com/issues/363916146
Эта проблема является основным блокатором для моей разработки, и я подумываю о возвращении к Legacy MediaPlayer и Abanding Media3 вообще. Любые предложения были бы очень оценены. Предоставленный Media3.mediasessionservice Пример кода на устройстве Samsung S24. (См. https://developer.android.com/media/med ... d-playback)ски Управление громкостью или программно в приложении (используя Audiomanager )

[*] Наблюдайте за тем, чтобы корректировки громкости не влияют на носитель Воспроизведение


ожидаемое поведение
Регулировка громкости Сделано через системные элементы управления или в приложении, должно быть отражено в томе воспроизведения среды. не влияет на громкость воспроизведения медиа на Устройство Samsung S24.
Информация об устройстве
  • Устройство: Samsung S24
  • ОС: Android 14 < /li>
    Одна версия пользовательского интерфейса: 6.1 < /li>
    < /ul>
    Дополнительные Информация < /strong> < /p>

    Проблема специфична для устройства Samsung S24 < /li>
    Кодовые функции правильно на других протестированных Устройства (Physical Moto G04S, эмулированный Pixel 8 API 34 & 35)
  • Соответствующие фрагменты кода включали в себя управление громкостью и настройка атрибутов Audio
  • Для usage_alarm < /code> в пользовательском интерфейсе не отображается регулятор громкости для «тревоги» на Samsung S24, в то время как все остальные устройства показывают это < /li>

    Код: Выделить всё

    PlaybackSessionService.onStartCommand
    triggers playerbackground.play () и работает в качестве службы переднего плана (запускаемой приемником трансляции тревоги) (контроль объема возможна и показано)
фрагменты кода [/b] (уменьшен на не деко Настройки) < /p>

Код: Выделить всё

import androidx.media3.common.AudioAttributes as Media3AudioAttributes;

class PlaybackSessionService : MediaSessionService() {

// ... (Relevant parts of the provided code)

override fun onCreate() {
super.onCreate()

// Setting audio attributes
val musicAudioAttributes = Media3AudioAttributes.Builder()
.setUsage(C.USAGE_MEDIA) // or C.USAGE_ALARM, depending on use case
.setContentType(C.AUDIO_CONTENT_TYPE_MUSIC)
.setAllowedCapturePolicy(C.ALLOW_CAPTURE_BY_NONE)
.setFlags(C.FLAG_AUDIBILITY_ENFORCED)
.build()

playerBackground = ExoPlayer.Builder(this)
.setDeviceVolumeControlEnabled(true)
.setAudioAttributes(musicAudioAttributes, /* handleAudioFocus= */ false)
.build()

// ... (Volume adjustment attempts)

playerBackground.volume = 0.1f

if (audioManager.isVolumeFixed()) {
Log.e("PlaybackService", "Volume is fixed") // not executed
}

audioManager.setStreamVolume(
AudioManager.STREAM_MUSIC, // or C.STREAM_ALARM, depending on use case
(audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC) // or C.STREAM_ALARM, depending on use case
* defaultAlarmVolumeLevel).toInt(),
0 //FLAG_SHOW_UI also no effect
)

// add session to service explicitly, otherwise notification is not shown
addSession(mediaSession!!)
} // end of onCreate

// ...
}
tl; dr
Использование примера примера Media3 по умолчанию 3 (фоновая игра MediaSession, https://developer.android .com/media/media3/session/founal-playback), управление громкостью и настройка тома программно не работает, как и ожидалось на устройстве Samsung S24 (Android 14, одна версия пользовательского интерфейса 6.1). Функции управления громкостью правильно на других тестируемых устройствах (физический Moto G04S, эмулированный Pixel 8 API 34 и 35).

Подробнее здесь: https://stackoverflow.com/questions/789 ... android-14

Вернуться в «Android»