package com.suno.android.media.player import android.content.Context import androidx.annotation.OptIn import androidx.media3.common.AudioAttributes import androidx.media3.common.C import androidx.media3.common.Player import androidx.media3.common.util.UnstableApi import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.source.preload.DefaultPreloadManager import com.suno.android.media.HooksFeed import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject import javax.inject.Singleton /** * Creates player instances specifically configured for hooks feed video playback. */ @OptIn(UnstableApi::class) @Singleton @HooksFeed class HooksFeedPlaybackPlayerFactory @Inject constructor( @ApplicationContext private val context: Context, @HooksFeed private val defaultPreloadManagerBuilder: DefaultPreloadManager.Builder, ) : PlayerFactory { override fun create(): Player = defaultPreloadManagerBuilder.buildExoPlayer( ExoPlayer.Builder(context) .setHandleAudioBecomingNoisy(false) .setWakeMode(C.WAKE_MODE_NETWORK) .setAudioAttributes( AudioAttributes.Builder() .setUsage(C.USAGE_MEDIA) .build(), true, ), ).apply { repeatMode = Player.REPEAT_MODE_ONE } }