Skip to content

Latest commit

 

History

History

coil-video

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Video Frames

This feature is only available on Android.

To add video frame support, import the extension library:

implementation("io.coil-kt.coil3:coil-video:3.0.2")

And add the decoder to your component registry when constructing your ImageLoader:

val imageLoader = ImageLoader.Builder(context)
    .components {
        add(VideoFrameDecoder.Factory())
    }
    .build()

To specify the time of the frame to extract from a video, use videoFrameMillis or videoFrameMicros:

imageView.load("/path/to/video.mp4") {
    videoFrameMillis(1000)  // extracts the frame at 1 second of the video
}

For specifying the exact frame number, use videoFrameIndex (requires API level 28):

imageView.load("/path/to/video.mp4") {
    videoFrameIndex(1234)  // extracts the 1234th frame of the video
}

To select a video frame based on a percentage of the video's total duration, use videoFramePercent:

imageView.load("/path/to/video.mp4") {
    videoFramePercent(0.5)  // extracts the frame in the middle of the video's duration
}

If no frame position is specified, the first frame of the video will be decoded.

The ImageLoader will automatically detect any videos and extract their frames if the request's filename/URI ends with a valid video extension. If it does not, you can set the Decoder explicitly for the request:

imageView.load("/path/to/video") {
    decoderFactory { result, options, _ -> VideoFrameDecoder(result.source, options) }
}