diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/player/PlayerPage.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/player/PlayerPage.kt
index ae7eed8..6339dbf 100644
--- a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/player/PlayerPage.kt
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/player/PlayerPage.kt
@@ -20,6 +20,7 @@
 import androidx.compose.ui.draw.clip
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.graphics.vector.rememberVectorPainter
+import androidx.compose.ui.platform.LocalDensity
 import androidx.compose.ui.res.colorResource
 import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.res.stringResource
@@ -29,6 +30,7 @@
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
 import androidx.compose.ui.window.Dialog
+import com.airbnb.lottie.ImageAssetDelegate
 import com.airbnb.lottie.LottieComposition
 import com.airbnb.lottie.compose.*
 import com.airbnb.lottie.sample.compose.BuildConfig
@@ -38,6 +40,7 @@
 import com.airbnb.lottie.sample.compose.utils.drawBottomBorder
 import com.airbnb.lottie.sample.compose.utils.maybeBackground
 import com.airbnb.lottie.sample.compose.utils.maybeDrawBorder
+import com.airbnb.lottie.sample.compose.utils.toDummyBitmap
 import kotlin.math.ceil
 import kotlin.math.roundToInt
 
@@ -48,7 +51,13 @@
 ) {
     val backPressedDispatcher = LocalOnBackPressedDispatcherOwner.current?.onBackPressedDispatcher
     val compositionResult = rememberLottieComposition(spec)
-    val animationState = rememberLottieAnimationState(autoPlay = true, repeatCount = Integer.MAX_VALUE)
+    val dummyBitmapStrokeWidth = with(LocalDensity.current) { 3.dp.toPx() }
+    val imageAssetDelegate = remember(compositionResult) { ImageAssetDelegate { it.bitmap ?: it.toDummyBitmap(dummyBitmapStrokeWidth) }}
+    val animationState = rememberLottieAnimationState(
+        autoPlay = true,
+        repeatCount = Integer.MAX_VALUE,
+        imageAssetDelegate = imageAssetDelegate
+    )
     val scaffoldState = rememberScaffoldState()
     val outlineMasksAndMattes = remember { mutableStateOf(false) }
     val applyOpacityToLayers = remember { mutableStateOf(false) }
diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/utils/BitmapUtils.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/utils/BitmapUtils.kt
new file mode 100644
index 0000000..7deb0bf
--- /dev/null
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/utils/BitmapUtils.kt
@@ -0,0 +1,20 @@
+package com.airbnb.lottie.sample.compose.utils
+
+import android.graphics.Bitmap
+import android.graphics.Canvas
+import android.graphics.Color
+import android.graphics.Paint
+import com.airbnb.lottie.LottieImageAsset
+
+fun LottieImageAsset.toDummyBitmap(strokeWidth: Float): Bitmap {
+    val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
+    val canvas = Canvas(bitmap)
+    val paint = Paint()
+    paint.color = Color.GRAY
+    paint.style = Paint.Style.STROKE
+    paint.strokeWidth = strokeWidth
+    canvas.drawRect(0f, 0f, width.toFloat(), height.toFloat(), paint)
+    canvas.drawLine(0f, 0f, width.toFloat(), height.toFloat(), paint)
+    canvas.drawLine(width.toFloat(), 0f, 0f, height.toFloat(), paint)
+    return bitmap
+}
\ No newline at end of file
