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>
triggers playerbackground.play () и работает в качестве службы переднего плана (запускаемой приемником трансляции тревоги) (контроль объема возможна и показано)
Код: Выделить всё
PlaybackSessionService.onStartCommand
Код: Выделить всё
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
// ...
}
Использование примера примера 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