KaiOS has some strange behaviour with different types of media.
General
- Long media files stored in application data may inadvertently stop during playback.
Image Files
Support
Filetypes not listed are untested. This applies to all "Support" sub-sections.
Supported
- PNG
- APNG
- JPEG
- GIF
Unsupported
- ?
Limitations
- Despite what the native gallery app says, KaiOS can show absurd resolution images. The only problem is memory and load times.
GIF / APNG
Dynamically changing an <img>'s src from a still to an animated GIF or APNG may not work correctly - they might either be frozen on the first frame, or may not show at all.
Video Files
Support
Supported
- 3GP
- MP4
- WEBM (With problems)
Unsupported
- AVI
- MKV
Limitations
- Only videos up to 720p will show smoothly. 1080p videos will be choppy and very annoying to watch. The screen is only QVGA resolution only anyway, so just show a 360p or 480p video.
WEBM
WEBM files might not be able to be played again after it has ended if it is too long; exactly how long is uncertain, and appears to depend on each device or file. Setting loop to true does not work. Removing the video element entirely and re-adding will allow you to play the file again.
Audio Files
Support
Supported
- OGG
- MP3
- OPUS
- M4A
- WAV
- MIDI
Unsupported
- FLAC
Limitations
- There is a bug in the native music app that will not allow users to choose a song if there is a fatal error in trying to render the album art. You don't have to worry about this too much, as this is very rare.
MIDI
Just a small note about MIDI: You can render a MIDI through an OfflineAudioContext.
Fake Support
You can add support for unsupported files. For example, you can read up on how an unsupported file is structured, and then parse that data and convert it to a supported format on the fly. For example you can play an FLAC file through an AudioContext, or play a AVI through a canvas. See arma7x/kaimusic as an example for music files.
