DOCUMENTATION

Below is the list of file types, formats and codecs supported by the current version of Clotouch Pixi cast:

Type File name extensions Supported formats Notes

Image

jpg, jpeg, png, bmp, gif, webp, svg, heic, heif

JPEG, PNG, Bitmap, GIF, WebP, SVG,
HEIC/HEIF (only on Android 9+)

https://developer.android.com/guide/topics/media/media-formats#image-formats for more details.
Files with resolution more than twice the size of the zone are first scaled down, in order to save the memory.
Animated GIFs and WEBPs are supported only on Android 9+.

Video

mpg, mpeg, avi, mp4, 3gp, mkv, ts, flv, f4v, webm, wmv, m2v, m4v, mov

Usually MPEG-2, MPEG-4, H.264, H.265

The exact codec and bitrate support is highly dependent on the hardware and support by the manufacturer of the device.
See https://slideshow.digital/documentation/video-player/ for more details.

Audio

aac, flac, mp3, wav, ogg, mid

AAC, FLAC, MP3, PCM/WAVE, Vorbis, MIDI

PDF

pdf

Depending on the setting “Display PDF as scrollable”, all pages are either displayed as one long list or one after another

HTML

html, htm, xhtml

More details
Supported HTML/CSS/JavaScript features depend on the version of Android System WebView app.

Excel

xls, xlsx

Excel 97-2003,
Excel 2007 and newer

It is possible to change styling of the table via web interface, menu Settings – Device settings – CSS style for XLS.

Webpage link

url

More details
URL link file containing shortcut to web page or text file with single line containing web page URL. Only pages which are successfully loaded are displayed.
Supported HTML/CSS/JavaScript features depend on the version of Android System WebView app.

Text

txt

Plain text in UTF-8 encoding

For displaying as moving text

RSS

rss, xml

RSS, Atom

With UTF-8 encoding

Stream

HTTP/HTTPS/RTSP/RTMP live stream
See Audio and Video for codecs

Support of particular codecs depends on the hardware.
See https://slideshow.digital/documentation/audio-video-stream/ and https://slideshow.digital/documentation/audio-streams/ for more details.

Archive

zip, tar, ar

ZIP (Store, Deflate or Deflate64), TAR, AR

Used just for downloading/synchronizing multiple files together. Archive files are always unpacked immediately after upload

Google Docs

Google Docs, Google Sheets, Google Slides

Automatically converted to PDF when downloaded to the device directly from Google Drive. Conversion can be adjusted through setting “Google Docs convert settings”

Pixi Cast distinguishes various file types only by the file name extension. If any uploaded file is not displayed, check if its file extension is listed in the table above. File name extension is case-insensitive (doesn’t matter if it is in upper or lower case).

By default, Clotouch Pixi Cast saves all files uploaded for playing into device’s internal storage, in the folder /Clotouch Pixi cast.

SD card or USB Flash Drive as a permanent storage

If the size of your device’s internal storage is not sufficient and the device has SD card or MicroSD card slot, or USB port, you can use it as a file storage for Clotouch Pixi cast, by changing the setting Storage for media either via web interface – menu Settings – Device settings or on-screen menu – Basic settings. You can check whether Clotouch Pixi cast can see the SD card or USB drive in Device information, under External storages.

The exact folder on SD card / USB drive, where Clotouch Pixi cast keeps the files can be either /slideshow or /android/data/sk.mimac.slideshow/files/slideshow, depending on the Android version (due to security policy of Android, which is out of our hands). We suggest formatting the storage to either EXT4 or FAT32, support of other file systems depends on your Android device.

Only the files for playing will be saved on SD card / USB drive. Configuration and logs will always stay in the device’s internal storage. After changing the Storage for media option, you will have to re-upload all files for playing, they are not copied automatically between internal and external storage.

USB Flash Drive as a source for copying

Clotouch Pixi cast can detect when you plug-in USB Flash Drive into your Android device (into USB host port) and depending on setting Action on Flash drive insert one of the following things can happen:

  • Do nothing – Clotouch Pixi cast will “ignore” the flash drive and continue playing files.
  • Copy files from Flash drive – Clotouch Pixi cast will pause the current playlist and copy all files from the flash drive into internal memory, overwriting files with the same name.
  • Delete files from device and copy from Flash drive – same as previous option, but deletes all already uploaded files first (irreversibly!).
  • Play files from Flash drive – Clotouch Pixi cast will pause the current playlist in the main zone and play files from the flash drive in alphabetical order until the flash drive is unplugged. If there are any other zones in the layout, their content won’t be affected.

You can choose which folder to use on the flash drive in setting Folder on Flash drive. This can be used as a simple security feature, as Clotouch Pixi cast will ignore any flash drive not containing a folder with this name. Leaving this setting empty will cause Clotouch Pixi cast to  copy or play files from the root folder of the flash drive, including hidden files and folders. At least one file should be present in the folder, in order for Slideshow to detect it correctly.

Flash drives formatted to either EXT4 or FAT32 should be supported by all versions of Android. Support of other file systems depends on your Android device.

If you add setup.csv file to USB flash drive, it will be recognized and processed before copying files.

Clotouch Pixi Cast allows you to schedule the date and time when a file should be automatically deleted. This date and time is then checked periodically and once the current date and time is past scheduled deletion, Pixi Cast will automatically delete the file from its internal storage. Interval how often are the dates checked can be configured via web interface – menu Settings – Device settings, item How often to check files.

Pixi Cast uses the system time for checking whether a file should be deleted. Please make sure that the device has the correct time set.

Bellow are three methods how you can set scheduled deletion of a file.

Setting scheduled deletion via File Manager

You can set or change the deletion date for file via web interface – menu Files – File manager, right click the file and pick Schedule deletion. In dialog you can pick date and time when you would like to automatically delete this file.

You can check the deletion date by either right clicking the file and choosing Get info, or switching the File manager into List view. In both cases, the date is listed under “Delete date”.

Setting scheduled deletion via setup.csv file

Deletion date can be configured in the setup.csv file included in ZIP archive, USB flash drive, Google Drive or Dropbox.

Setting scheduled deletion via file name

If you upload a file with special file name to Pixi Cast through any channel (web interface, FTP, WebDav, USB, Google Drive, Dropbox, etc.), Pixi Cast will recognize the format and save the scheduled deletion date.

Supported format of file name is as follows: {any name}_DEL_{date}.{extension}

Supported date formats are:

  • yyyy-MM-dd (e.g. 2019-12-07)
  • yyyy-MM-dd HH:mm (e.g. 2019-12-07 13:20)
  • dd.MM.yyyy (e.g. 07.12.2019)
  • dd.MM.yyyy HH:mm (e.g. 07.12.2019 13:20)
  • xxD (e.g. 20D, meaning deletion in 20 days after upload)
  • xxH (e.g. 5H, meaning deletion in 5 hours after upload)
Examples:
  • image_DEL_2020-11-22.jpg
  • video_DEL_2020-11-22 21:00.mp4
  • sample-banner_DEL_22.11.2020.jpg
  • temporary document_DEL_7D.pdf

File name is checked only at the moment file is first uploaded to Pixi Cast. If you want to change the scheduled deletion date afterwards, you can do so via File manager (see the first method). Renaming the file after it was uploaded has no effect on scheduled deletion.

Content and playlists allow you to customize what is displayed on the screen.

You can manage these settings from Clotouch Pixi Cast’s web interface.

Content

Content describes what exactly should be played or displayed on the screen. There several types of content:

  • Single file – play exactly one file stored in the device’s internal memory
  • Files alphabetically – play one or more files stored in the device’s internal memory in alphabetical order. You can group files based on the folder they are in, prefix of their name or their extension.
  • Files randomly – play one or more files stored in the device’s internal memory in random order (a special algorithm is used, so you won’t get the same file two consecutive times). You can group files based on the folder they are in, prefix of their name or their extension.
  • Audio/video stream – network stream containing audio or video (e.g. webcam feed, internet radio, internet TV, video stream)
  • Date/time – displays current date and/or time. Device’s internal clock and time zone is used.
  • Weather – displays weather forecast or current weather from an online service
  • RSS messages – displays RSS feeds (e.g. news)
  • Plain text – displays single line of static text, without any formatting
  • Nothing – just zone background is displayed (solid color or linear / radial gradient), useful for advanced screen layouts
  • Today’s name day – display first name that currently celebrates name day
  • Video input – preview from camera or HDMI input
  • YouTube video – online video from YouTube
  • Android widget – widget installed in the Android operating system

For types Files alphabetically and Files randomly you can enter the field Path in several formats according to which files you would like to pick, even combine the formats:

  • Only one file, by entering file name directly, as is (e.g. image1.jpg. You can also use File manager (via menu Files) – right click on a file – Create new content from here, which will pre-fill the entire path.
  • All files in one folder, by entering folder name and a wildcard sign (e.g. folder1/*). You can also use File manager (via menu Files) – right click on a folder – Create new content from here, which will pre-fill the entire path.
  • All files in one folder and its subfolders, by entering folder name and a double wildcard (e.g. folder1/**).
  • All files in all folders and subfolders, by entering a double wildcard (**).
  • Several paths, separated by colon sign (e.g. folder1/*:folder2/*)
Content can be created and edited through menu Content.

Playlist

Playlist consists of one or more content, which is played in the set order in an endless cycle, until the playlist is changed (either manually or due to schedule). During the cycle, each content is resolved to only a single file, image or stream. This is then played for a set amount of seconds (except for audio files, video files and moving RSS messages, which are always played for their full length). After finishing the content, the playlist moves on to the next content. There are 3 types of playlists based on how the audio is played:

  • Mute – no audio is played from the videos and streams in this playlist
  • From video – audio is played if video or video stream is displayed
  • Audio playlist – special playlist for only audio files/streams, playlist with this type cannot be assigned to a screen layout zone, see Audio playlists schedule

After creating a content, playlist containing the new content is created automatically as well. If you want to use just one content in the playlist, it is not necessary to create a separate playlist.

Playlists can be created and edited through menu Playlists.

Using screen layouts and zones, you can set up what content you would like to display on the screen. They can be created and edited through Pixi Cast’s web interface, menu Screen layout.

Zone

Zone is a rectangular area on the screen. It has a defined position on the screen, in percentage of width and height. You can set up the following parameters for each zone:

  • Position and size, either in percentage or in pixels (automatically recalculated)
  • Background color, which can be semi-transparent, or linear / radial color gradient consisting of two colors
  • Border lines, their width and color
  • Transition between two consecutive images
  • Rounded corners

Each zone has one or more playlists assigned through schedules, that means that the zone can display different playlists on different hours of the day or different days of week.

Zone can be configured through the Edit screen layout page., by double-clicking a particular zone.

Screen layout

Screen layout describes what the entire screen looks like. It consists of one or several zones, which can also overlap. You can use transparent or semi-transparent background color for overlapping zones. The zones are rendered in the exact order as they are displayed on the Edit screen layout page, the last zone in the list is displayed on the top of the screen. You can reorder the zones by dragging them in the list below the screen layout builder

You can schedule different screen layout on different parts of the day or different days of week.

Through menu Screen layout – button Sample screen layouts you can quickly choose from a few predefined screen layouts and use them on your device.

Scheduling is used in two places in Pixi Cast app: for screen layouts schedule (which screen layout should be displayed when) and for playlists schedule (which playlist should be displayed when and in which screen layout zone).

You can manage all these settings from Pixi Cast’s web interface.

Screen layouts schedule

You can setup schedule for screen layouts in order to display different screen layouts on different parts of the day or different days of week. Pixi Cast will automatically check the screen layout schedule each minute, so after changing the schedule, it might take up to a minute to see the change on the screen of the Android device.

You can manage the schedules via menu Screen layout – button Screen layouts schedule.

Screen layout intervals

You can setup schedule for screen layouts in order to display different screen layouts on different parts of the day or different days of week. Pixi Cast will automatically check the screen layout schedule each minute, so after changing the schedule, it might take up to a minute to see the change on the screen of the Android device.

You can manage the schedules via menu Screen layout – button Screen layouts schedule.

Playlists schedule

Each screen layout zone has a schedule for playlists, that means that the zone can display different playlists on different parts of the day or different days of week. Pixi Cast will automatically switch the playlist when the next content from the playlist should be displayed.

You can assign playlists to a zone via menu Screen layout – Edit screen layout – double click a zone – Playlists schedule for zone.

Audio playlists schedule

There is a special scheduling of of audio playlists, they are not connected to any screen layout zone, as this kind of playlists acts as a background music. You can setup the schedule via menu Playlists, button Audio playlists schedule. Only playlists with type “Audio playlist” can be assigned to a background music.

Some diagrams for better clarification

Below are diagrams for two sample configurations:

 

Visualization of little bit more complex setup: two zones on the screen, one zone has different playlist during day and night, the day playlists switches between two different contents

If the Android devices, on which Slideshow is running, is connected to the local network, you can manage the app from you computer, phone or tablet. Note that the interfaces mentioned bellow work only from the same local network (LAN). If you want to manage Slideshow remotely, you can setup file synchronization from your HTTP/FTP serverGoogle Drive or Dropbox.

Web interface

Slideshow’s web interface is the main interface for managing all the Slideshow’s advanced features.

Web interface can be accessed from the web browser on your computer. You can find the address, on which the web interface is accessible, via on-screen menu – Help. It is usually “http://{device’s IP address}” for rooted devices and “http://{devices’s IP address}:8080” for non-rooted devices.

If the Android device has several networks (e.g. WiFi + Wired, or WiFi + 4G data), Slideshow will listen on all the networks, but will display only a single IP address on the screen. If you are on the same network as the Android device and can’t connect to the address displayed by Slideshow, please verify / disconnect other networks.

Default username / password is admin / admin. It can be changed after logging in, either via menu Settings – Users or Settings – Password change. If you forgot the password, you can reset it on the login page within 10 minutes after the Android device is started. For security reasons, resetting the password requires direct access to the Android device.

The port number for web interface can be changed via web interface – menu Settings – Device settings – HTTP port number or HTTPS port number or on-screen menu – Basic settings – HTTP port number. If you want to use port number bellow 1024, the device has to be rooted and port 8080 (for HTTP) / 8443 (for HTTPS) has to be free on the device (see this blog post for explanation).

Web interface – login page
Web interface – home page

Web interface via HTTPS

Slideshow also supports secured HTTPS protocol for web interface. The address is usually “https://{device’s IP address}” for rooted devices and “https://{devices’s IP address}:8443” for non-rooted devices. By default, Slideshow generates self-signed SSL certificate on the first start, so browsers will display security alert before access the page. You can upload your own SSL certificate for HTTPS in PKCS12 format via web interface – menu Settings – Device settings – Certificate for HTTPS.

Dialog for uploading certificate for HTTPS

FTP interface

You can access all files uploaded to Slideshow using a FTP client (for example WinSCP or Total Commander). Use the following connection settings:
IP address: LAN IP address of the device
Port: default is 21 on rooted devices, 8021 on non-rooted devices
Username / password: same as for the web interface, default is admin / admin.

You can find the active port via on-screen menu – Help. It can be changed via web interface – menu Settings – Device settings – FTP port number.

FTP protocol is not encrypted (Slideshow doesn’t support SFTP or FTP over SSL). If you are connecting to the device via not-secured WiFi (WiFi without password), you connection might be easily intercepted.

WinSCP with prepared connection to Slideshow via FTP

WebDAV interface

You can access all files uploaded to Slideshow using a WebDAV client (for example WinSCP). WebDav interface is running on the same port as HTTP and HTTP interface, on path /webdav. Use the following connection settings:
IP address: LAN IP address of the device
Port: same port as HTTP or HTTPS interface
Username / password: same as for the web interface, default is admin / admin.
Remote directory: /webdav

WebDav client, which is integrated in Windows operating system, is not fully compatible with Slideshow, because it doesn’t support HTTP Basic Auth for WebDAV by default.

WinSCP with prepared connection to Slideshow via WebDav

There are several ways how to add new files for display to Slideshow application, but most of them require being near the device (either within the physical reach for upload via USB flash drive or on the same LAN network for web interface access – not counting remote VPN / TeamViewer / RDP, which may be quite challenging to setup or not desired for other reasons).

One of the ways to manage files on Slideshow remotely, even if you are hundreds or thousands kilometers away from the device, is file synchronization using ZIP file from HTTP or FTP server.

Prerequisites

  • Android device with stable access to the internet
  • Slideshow application installed on that device
  • HTTP or FTP server accessible from the internet
  • WinZip / WinRar / 7-Zip / any other software for creating ZIP files

How to do it

  1. Create a ZIP file with all files (images, videos etc.) you would like to display with Slideshow app.
  2. Upload that ZIP file to your HTTP or FTP server.
  3. Login into Slideshow’s web interface.
  4. Through menu Settings – Device settings set Synchronization interval to 3600 (=1 hour), or any other interval of your choosing.
  5. Through menu Tools – File synchronization add new entry. Fill the URL address pointing to the ZIP file on your HTTP or FTP server, the address should start with http://https:// or ftp://. Set the file name to file.zip, it is important that the file name ends with .zip.

6. Reload the Slideshow application. After a few seconds, Slideshow will automatically download the ZIP file from your server, unpack it and start displaying the files.

7. If you would like to add new files, just pack them into the ZIP file and upload this new ZIP file to the same location on your HTTP or FTP server from anywhere in the world. Slideshow application will automatically download and unpack it within the download interval (e.g. one hour).

If you encounter any problems with the the file synchronization, for example you can’t see any new files in Slideshow, try checking menu Information – Log for possible problems.

You can also insert setup.csv file into the ZIP file in order to get more control over which files will be copied.

Server protected by password

If you would like to protect the file on your server (which is encouraged), you can setup password protection for your HTTP or FTP server. Slideshow supports Basic Authentication mode for both HTTP and FTP.

You can add the username and password to the URL address in Slideshow in following way:

Format: protocol://username:password@server.domain
Example: http://admin:admin123@files.slideshow.digital

Slideshow can automatically parse username and password from the URL and use it to login to the HTTP or FTP server.

Slideshow offers you the possibility to automatically synchronize files from your Google Drive account to Slideshow’s internal storage, similarly to synchronization with Dropbox. Thanks to this feature, you can manage the files remotely, without need for HTTP or FTP server. As both Google Drive and Slideshow software are free, this offers you a cheap and effective solution for Digital Signage.

In order to lower the network bandwidth, Slideshow downloads only files which have a newer last modification date on Google Drive than in the internal storage. It is important to set the date and time on device correctly, so the modification date is saved correctly.

It is not necessary to have Google Drive app installed on the Android device, Slideshow is using direct connection to Google Drive servers for the synchronization.

How to setup file synchronization from Google Drive

1. Open Slideshow’s web interface and navigate to menu Tools – File synchronizatrion.

2. In Add new synchronization section, select type Google Drive and click on Login with Google account.

3. Google login form will open on the device’s screen – not on the screen you have the web interface, but on the screen of the device where Slideshow is installed! This is due to Google’s security policy, so this step cannot be done remotely.
If the device’s screen stays blank or the login form is not loaded properly, check if your device has internet access and has an up-to-date browser installed (or even has a web browser installed – some devices are shipped with no preinstalled browser).
If you get an error message saying “Error 403: disallowed_useragent”, try installing or updating Chrome (from here or here) or Firefox browser (from here or here) on the Android device and setting it as your default browser. Google doesn’t support older browsers for login to their services.

4. Login into your Google account and allow Slideshow to access your Google Drive. We are asking just for read-only access, Slideshow won’t (and can’t) modify files on your Google Drive.

5. After successful login, you will get a simple screen with a message to switch back to Slideshow app on the device. Web interface in your browser should refresh and display a success message.

If you have changed the port for Slideshow’s web interface to a different one than the predefined one (80 or 8080), the login might not work correctly. We suggest switching to the predefined ports during the initial Google Drive setup.

6. Pick a source folder on your Google Drive (you have to create if first through https://drive.google.com) and target folder on your device. You can also choose whether you would like to clear (delete) old files after each download – this is useful if you are adding and removing files over the time.

7. Click on Save and test the newly added entry by clicking on Synchronize now. If there are many files in the folder, or there are large files, it might take some time until the downloading is finished. If the folder contains more than 1000 files, only the first 1000 will be downloaded.

8. If you want Slideshow to synchronize the files periodically, don’t forget to set “Synchronization interval” in menu Settings – Device settings. It specifies how often (in seconds) should Slideshow download files from Google Drive (and other sources). Don’t forget to reload Slideshow app after setting it.

9. Slideshow has to stay logged in into your Google account if you want the file synchronization to work. If you logout from your Google account (either via Slideshow web interface, or Google console), you won’t be able to synchronize any files from Google Drive until you log in back.

Google might automatically logout Slideshow if you change your Google account password or if there are too many devices connected to a single Google account (usually 20+).

10. If you want to add more folders for synchronization or edit the existing one, just start from step 6. Entering your Google Account username and password is necessary only during first setup or if you logout from the account.

More features

You can combine synchronization from Google Drive with other Slideshow’s features:

  • setup.csv – just add a file named setup.csv to the folder which you are synchronizing on Google Drive and it will be automatically recognized by Slideshow.
  • Scheduled deletion – setup scheduled deletion of file based on it’s name.
  • Unpacking ZIP files – if your Google Drive’s folder contains a ZIP file, it will be automatically unpacked during the download.
  • Google Docs Files – Slideshow can automatically convert Google Docs, Google Sheets and Google Slides files to PDFs while synchronizing from Google Drive and then display these PDFs on screen.

Clotouch Pixi Cast offers you the possibility to automatically synchronize files from your Dropbox account to Clotouch Pixi Cast’s internal storage, similarly to synchronization with Google Drive. Thanks to this feature, you can manage the files remotely, without need for HTTP or FTP server. As both Dropbox and Clotouch Pixi Cast software are free, this offers you a cheap and effective solution for Digital Signage.

Clotouch Pixi Cast supports synchronizing up to 2000 files from a single Dropbox folder. If you would like to synchronize more files, split the files into subfolders, each containing at most 2000 files.

In order to lower the network bandwidth, Clotouch Pixi Cast downloads only files which have a newer last modification date on Dropbox than in the internal storage. It is important to set the date and time on device correctly, so the modification date is saved correctly.

How to setup file synchronization from Dropbox

1. Open Slideshow’s web interface and navigate to menu Tools – File synchronization.

2. In Add new synchronization section, select type Dropbox and click on Login with Dropbox account.

3. Dropbox login form will open on the device’s screen – not on the screen you have web interface, but on the screen of the device where Slideshow is installed! This is due to the security policy of Dropbox, so this step cannot be done remotely. If the device’s screen stays blank or the login form is not loaded properly, check if your device has internet access and has up-to-date browser installed.

4. Login into your Dropbox account and allow Slideshow to access your Dropbox. We are asking just for read-only access, Slideshow won’t (and can’t) modify files on your Dropbox.

5. After successful login, you will get a simple screen with a message to switch back to Slideshow app on the device. Web interface in your browser should refresh and display a success message.

If you have changed the port for Slideshow’s web interface to a different one than the predefined one (80 or 8080), the login might not work correctly. We suggest switching to the predefined ports during the initial Dropbox setup.

6. Pick a source folder on your Dropbox (you have to create if first through https://www.dropbox.com) and target folder on your device. You can also choose whether you would like to clear (delete) old files after each download – this is useful if you are adding and removing files over the time.

Due to limitations of Dropbox API, some subfolders from your Dropbox may be missing in the dropdown. If you would like to synchronize from a Dropbox folder that isn’t in the list, select an empty entry (the first one) and fill out the path to the subfolder in the next field.

7. Click on Save and test the newly added entry by clicking on Synchronize now.

8. If you want Slideshow to synchronize the files periodically, don’t forget to set “Synchronization interval” in menu Settings – Device settings. It specifies how often (in seconds) should Slideshow download files from Dropbox (and other sources). Don’t forget to reload Slideshow app after setting it.

9. Slideshow has to stay logged in into your Dropbox account if you want the file synchronization to work. If you logout from your Dropbox account (either via Slideshow web interface, or Dropbox console), you won’t be able to synchronize any files from Dropbox until you log back in.

10. If you want to add more folders for synchronization or edit the existing one, just start from step 6. Entering your Dropbox username and password is necessary only during first setup or if you logout from the account.

More features

You can combine synchronization from Dropbox with other Slideshow’s features:

  • setup.csv – just add a file named setup.csv to the folder which you are synchronizing on Dropbox and it will be automatically recognized by Slideshow.
  • Scheduled deletion – setup scheduled deletion of file based on it’s name
  • Unpacking ZIP files – if your Dropbox’s folder contains ZIP file, it will be automatically unpacked during the download.

Multiple devices / players with Clotouch Pixi cast app installed can communicate directly between each other using a proprietary protocol, which can be used for light monitoring, management and synchronized playback between devices.

The group is defined by setting Devices group code, only devices with the same group code can communicate with each other.

  • LAN – If the devices are on the same local network (LAN), they can discover each other automatically using UDP multicast. This might not work correctly over WiFi (prefer wired connection) or if the router blocks direct communication between devices.
  • WAN – Direct peer-to-peer (P2P) communication between devices that are not on the same local network is sometimes possible, but usually requires support for UPnP (Universal Plug and Play) on the router. Communication might not work if more than one NAT is used, or if your internet provider uses Carrier-grade NAT. Enable setting Enable device discovery on the internet in order to allow discovery of devices not on the same local network.

Security notice: Make sure you don’t share your Devices group code with anybody, as it is used also as a security code for establishing the communication between devices. If you used the “Nearby devices” feature before, you need to change the group code from “DEFAULT_GROUP_CODE” before enabling the device discovery on the internet. If you enable device discovery on the internet, we highly suggest changing the default username/password for the web interface as well.

Overview of discovered devices together with available commands can be viewed via Slideshow’s web interface – menu Settings – Other devices. For devices that are on a different local network there is a Tunnel web interface button as well, which opens a new browser window with the web interface of that device, even if your computer is on a different local network. Only a single tunnel can be opened at any time. The transfer speed through the tunnel is much lower than the usual network speed.

You can use setup.csv file for definition which uploaded file should be played in which time interval. This functionality can be used for changing the displayed files over time without direct access to Slideshow’s web interface.

Location

File setup.csv can be located:

  • In ZIP archive, which can be uploaded through web interface, FTP, USB Flash drive or downloaded from internet via File synchronization.
  • In Google Drive or Dropbox folder, which is synchronized via File synchronization
  • In “slideshow” folder on the USB Flash drive

If this file won’t be present in ZIP archive or in the directory, all files will be copied (the default behavior).

File format

File setup.csv is a text file (UTF-8 encoded) with one command on each line. The number of commands in one file is not limited, use as many commands as you need to.

You can use comma , or semicolon ; as a separator of the parts of the command, Slideshow will recognize either of the characters.

Commands

Each line of setup.csv file can contain one of the following commands:

  • The line starts with two slashes // or hash sign # – used for comment, this like won’t be processed, it is just a note for the author of the file.
  • The line starts with colon : – special command:
    • :VALID;date from;date to – whole setup.csv file is valid only between the two dates. Outside of this interval, no subsequent commands will be processed and no file at all will be copied. One of the dates may be an empty string.
    • :DELETE;file name – deletes file in the folder where files should be copied. You can either enter the exact file name, or use the wildcard * to specify multiple files.
    • :CONFIG;file name;delete – restore XML configuration backup from the file. “
    • :UPDATE;APK file name;version – remotely update Slideshow application. The version part should be set to the version of Slideshow app which is in the APK file, it is used as a check if the app is already updated or not (e.g. “3.13.0”). “External config import” has to be enabled in Device settings in order for this functionality to work (this setting acts as a security check). Works only on rooted devices.
    • :WIFI;ssid;password – tries connecting to a WiFi network. Progress of the connection is displayed as a short message on the bottom of the screen. Confirmation on the screen of the Android device might be needed, depending on the Android version.
    • :RELOAD – reload Slideshow app after processing of the files is finished. “External config import” has to be enabled in Device settings in order for this functionality to work (this setting acts as a security check).
    • :REBOOT – reboot the Android device after processing of the files is finished. “External config import” has to be enabled in Device settings in order for this functionality to work (this setting acts as a security check). Works only on rooted devices.
  • Other lines – definition from when until when should the file be displayed/played (provided that it will be in a playlist). The order is file name, date from, date to. One of the dates may be an empty string. If date to is in the future, the file will be automatically deleted at that date.

Date formats

The dates in setup.csv file can be in the one of the following formats:

  • yyyy-MM-dd (e.g. 2019-12-07)
  • yyyy-MM-dd HH:mm (e.g. 2019-12-07 13:20)
  • dd.MM.yyyy (e.g. 07.12.2019)
  • dd.MM.yyyy HH:mm (e.g. 07.12.2019 13:20)
  • yyyy-MM-dd'T'HH:mm:ss (e.g. 07.12.2019T13:20:00) – ISO 8601 format without time zone
  • Timestamp – number of milliseconds since 1 January 1970, 00:00:00 GMT
All times are parsed in 24 hour format.

Examples with explanation

Valid from 1 December 2019, delete all files with .jpg extension and copy all files from ZIP / USB Flash drive:

:VALID;2019-12-01;
:DELETE;*.jpg

Valid until 31 December 2019, delete file test.png, display file banner.jpg only after 15 December 2019, display other files at all times (until the global valid date of 31 December 2019):

:VALID;;31.12.2019
:DELETE;test.png
"banner.jpg";15.12.2019;

Valid always, files image1.jpg and image2.jpg will be displayed only in December 2019 and they will be automatically deleted on 31 December 2019 at 12:00:

// Comment example
image1.jpg,1.12.2019,31.12.2019 12:00
image2.jpg,1.12.2019,31.12.2019 12:00

Import XML configuration from file configuration.xml and replace the previous configuration of Slideshow:

:CONFIG,configuration.xml,delete

Sample

Try uploading this ZIP file containing two images and setup.zip to the Slideshow app. Only one image will be played at any time.

Troubleshooting

You can check whether the file was recognized by checking the logs (through the web interface – menu Information – Log) and looking for the line similar to this:
02.01.20 18:43:26 DEBUG sk.mimac.slideshow.csv.FileDataParser - Detected file data file 'setup.csv'

If you want to copy your Slideshow’s configuration to more devices or simply make a backup in case something goes wrong, the best way to do it is use XML configuration backup / restore.

Via web interface, menu Settings – Backup & Restore, you can export the entire configuration of Slideshow to the XML file and download this file to your computer. Afterwards, you can use this XML file to restore this configuration in Slideshow on the same or different device.

Alternatively, you can upload configuration XML file to a ZIP file, enter its file name in setup.csv file (see directive :CONFIG) and setup file synchronization of this ZIP file. This way, you can modify the configuration of Slideshow entirely remotely. For security reasons, setting “External config import” has to be enabled in order for Slideshow to actually process the external configuration.

The configuration file might not be compatible between different versions of Slideshow. We suggest importing the configuration only to to same version of Slideshow as it was exported from.

What can you include in the backup?

  • Your device’s settings – content of web interface, menu Settings – Device settings (more information)
  • User accounts – including password in a hashed form, so be very careful with this option
  • Configuration of screen layouts, panels, playlists, content
  • Configuration of file synchronization, login to Google Drive and Dropbox account cannot be exported due to security reasons (more information)
  • List of on-device RSS messages – content of web interface, menu Tools – RSS messages (more information)
  • List of file metadata for scheduled deletions (more information)
  • Key mapping for keyboard shortcuts (more information)
  • Triggers (more information)
  • Media files (optional – if checked, Slideshow will produce ZIP instead of XML)

Manual modification of the backup

As the configuration backup is in human-readable XML format, it can be (very, very carefully) modified manually. This can be helpful for example if you want to do some batch modification. Just remember to open the XML backup file in a text editor which supports UTF-8 encoding natively (for example Notepad++ on Windows platform).

After updating the file manually, you can validate the XML file against the configuration XSD schema (provided below), for example using XML Tools in Notepad++, online service such as http://www.utilities-online.info/xsdvalidation/, or any other tool supporting XML validation against XSD schema.

Some of Slideshow’s functionality can be also controlled over the local network via REST API, which is available on the same address and port as the web interface. It can be used for integrating Slideshow with other services, scripts and automation tools.

Below you can find OpenAPI definition of Slideshow’s public REST API, together with description and examples (open in new window). This REST API is stable and there won’t be any breaking changes without prior notification.

The API is protected by HTTP Basic Authentication. Every call has to have HTTP header Authorization: Basic <credentials>, with credentials in form username:password encoded in Base64. You can use the same username and password as for the web interface.

Note that the request from the interface below directly to your Slideshow instance might not work, due to browser’s CORS security policy.

Local JavaScript API allows you to create interactive digital signage screens by creating an HTML file, which can change the content displayed in each zone on the screen. For example, clicking a button in one part of the screen can trigger the display of a particular file in another part of the screen. Setting up such an HTML file requires at least basic knowledge of HTML and JavaScript.

All methods of the API are static methods in class SlideshowAPI. It can be accessed from HTML files displayed on the screen, the HTML file is displayed either from the internal memory, or as a website loaded from an URL file saved in the internal memory.

Local JavaScript API is disabled by default for security reasons and can be enabled via web interface – menu Settings – Device settings – Allow local API for web pages.

List of available methods

  • Display file on the screen:
    SlideshowAPI.showFile(zoneName, fileName, duration);
    • zoneName – name of the zone, in which the file should be displayed, or null for the main zone
    • fileName – name of the file to display
    • duration – duration of display in seconds
    Set playlist:
    SlideshowAPI.setPlaylist(zoneName, playlistName);
    • zoneName – name of the zone, in which the playlist should be displayed, or null for the main zone
    • playlistName – name of the playlist to display
    Clear set playlist:
    SlideshowAPI.clearPlaylist(zoneName);
    • zoneName – name of the zone, in which the playlist should be cleared (returning to the scheduled playlist), or null for the main zone
    Move to the next file in playlist:
    SlideshowAPI.next(zoneName);
    • zoneName – name of the zone, in which the file should be displayed, or null for the main zone
    Pause playback:
    SlideshowAPI.pause(zoneName);
    • zoneName – name of the zone, in which the playback should be paused, or null for the main zone
    Resume playback:
    SlideshowAPI.resume(zoneName);
    • zoneName – name of the zone, in which the playback should be resumed, or null for the main zone

Examples

You can use the HTML file bellow as an example. It contains several buttons, each which a description what it does. The JavaScript call is in the “onclick” property of the each button.

Example HTML file with JavaScript calls

				
					<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <style> body { background-color: white; } </style>
  </head>
  <body>
    <h1>Examples for Slideshow's Local JavaScript API</h1>

    <h2>Method SlideshowAPI.showFile(zoneName, fileName, length)</h2>

    <button onclick="SlideshowAPI.showFile(null, 'image1.jpg', 5);"> 
        Display file image1.jpg <br>in the main zone <br>for 5 seconds 
    </button>
    <button onclick="SlideshowAPI.showFile('Side zone', 'images/image2.jpg', 10);">
        Display file image2.jpg from folder images <br>on the zone called Side zone <br>for 10 seconds
    </button>
    <button onclick="SlideshowAPI.showFile(null, 'video1.mp4', 10);">
        Display file video1.mp4 <br>in the main zone <br>(length is ignored)
    </button>
    <button onclick="SlideshowAPI.showFile('audio', 'song1.mp3', 10);">
        Play file song1.mp3 <br>as a background audio <br>(length is ignored)
    </button>

    <h2>Method SlideshowAPI.next(zoneName)</h2>

    <button onclick="SlideshowAPI.next(null);">
        Go to the next item <br>in the playlist in the main zone
    </button>
    <button onclick="SlideshowAPI.next('Side zone');">
        Go to the next item <br>in the playlist on the zone called Side zone
    </button>
    <button onclick="SlideshowAPI.next('audio');">
        Go to the next item <br>in the audio playlist
    </button>

    <h2>Method SlideshowAPI.setPlaylist(zoneName, playlistName)</h2>

    <button onclick="SlideshowAPI.setPlaylist(null, 'Video playlist');">
        Set playlist called Video playlist <br>in the main zone
    </button>
    <button onclick="SlideshowAPI.setPlaylist('Side zone', 'Image playlist');">
        Set playlist called Image playlist <br>on the zone called Side zone
    </button>

    <h2>Method SlideshowAPI.pause(zoneName) / SlideshowAPI.resume(zoneName)</h2>

    <button onclick="SlideshowAPI.pause(null);">
        Pause playback <br>in the main zone
    </button>
    <button onclick="SlideshowAPI.resume('Side zone');">
        Pause playback <br>on the zone called Side zone
    </button>
    <button onclick="SlideshowAPI.resume(null);">
        Resume playback <br>in the main zone
    </button>
  </body>
</html>
				
			

This topic is for advanced users only. More information about MQTT protocol can be found on https://mqtt.org/ and Wikipedia. You can also check out the tutorial.

Slideshow contains an MQTT client, which can connect to a remote MQTT broker via internet connection and receive commands from external systems. Thanks to this, multiple instances of Slideshow can be controlled at the same time, even remotely across the world.

Setup of the connection to the broker can be done through the web interface – menu Settings – Device settings – section MQTT. Reload the app after changing the settings in order to apply them. Current connection status can be found via menu Information – About device – MQTT connection state or on the bottom of the home page.

Supported MQTT version is 5, with optional TLS security or communication through HTTP WebSockets (both configurable in Device settings). Slideshow is tested with HiveMQ and Mosquitto MQTT brokers.

Communication

Communication via MQTT is asynchronous, Slideshow is listening for commands from an external system. Once the command arrives, Slideshow executes it and returns a response on another topic.

Four MQTT topics are used for the communication with each device, the names are based on the MQTT topic prefix and MQTT topic name from the device settings.

  • {MQTT topic prefix}/REQ/{MQTT topic name}/SHELL – request from server to the device to execute shell command
  • {MQTT topic prefix}/RESP/{MQTT topic name}/SHELL – response from the device to the shell command
  • {MQTT topic prefix}/REQ/{MQTT topic name}/API – request from server to the device to execute API call
  • {MQTT topic prefix}/RESP/{MQTT topic name}/API – response from the device to the API call
If no topic name is set in the device settings, MAC address without colons will be used as a default (if available).

Example communication

Topic prefix “SLIDESHOW” and device with MAC address 01:02:03:04:05:06 is used in all examples below.

Execute shell command

Request topic: SLIDESHOW/REQ/010203040506/SHELL
Request message: getprop ro.serialno
Response topic: SLIDESHOW/RESP/010203040506/SHELL
Response message: {"command": "echo test", "success": true, "result": { "result": 0, "stdout": "test\n", "stderr": "" }}

Move to the next file

Request topic: SLIDESHOW/REQ/010203040506/API
Request message: {"operation": "next"}
Response topic: SLIDESHOW/RESP/010203040506/API
Response message: {"command": "next", "success": true}

Display file on screen

Request topic: SLIDESHOW/REQ/010203040506/API
Request message: {"operation": "showFile", "parameters": {"zoneName": "Whole screen", "file": "sample1.jpg", "length": 5}}
Response topic: SLIDESHOW/RESP/010203040506/API
Response message: {"command": "showFile", "success": true}

 

Automatically reported data

If “Report data through MQTT” setting is enabled, Slideshow will automatically report its current device status over MQTT every 2 minutes, without need to make any request. Similarly, enabling “Report statistics through MQTT” setting causes Slideshow to automatically send statistics about files displayed in the main zone.

You can find examples of both reports below.

Data report (device information):

Statistics report (playback):

				
					{
  "command": "deviceInfo",
  "success": true,
  "result": {
    "lastDisplayedFile": "Youtube video",
    "deviceAdmin": false,
    "serialNumber": "1ZO9KODTGK",
    "softwareVersionCode": 156,
    "storageSpaceFree": 24738324480,
    "hardwareModel": "DS03",
    "storageSpaceTotal": 25797066752,
    "timeZone": "GMT",
    "deviceId": "caaf349de6d71f9e",
    "uptime": 1662123536430,
    "appUptime": 1662132696156,
    "macAddress": "34:D0:B8:70:E2:7B",
    "lockTaskMode": false,
    "deviceOwner": false,
    "androidVersion": "9",
    "currentVolume": 0,
    "rooted": true,
    "ipAddressInternal": "10.42.100.110",
    "lockTaskApplication": false,
    "softwareVersion": "3.24.2"
  }
}

				
			
				
					{
   command: "playStatistics",
   success: true,
   result: {
      statistics: [
         {
            item: "Youtube video",
            started: 1662133551420,
            length: 29106
         },
         {
            item: "sample-image-5.jpg",
            started: 1662133580527,
            length: 5078
         },
         {
            item: "Youtube video",
            started: 1662133585604,
            length: 29137
         }
      ]
   }
}
				
			

Supported commands

Move to the next file:
{"operation": "next", "parameters": {"zoneName": "Whole screen"}}

Display file on the screen:
{"operation": "showFile", "parameters": {"zoneName": "Whole screen", "file": "sample1.jpg", "length": 5}}

Display custom HTML content on the screen:
{"operation": "showSentHtml", "parameters": {"zoneName": "Whole screen", "length": 5, "html": "<strong>Sample bold text</strong>"}}

Switch to different playlist:
{"operation": "playlist/set", "parameters": {"zoneName": "Whole screen", "playlist": 1}}

Clear set playlist:
{"operation": "playlist/clear", "parameters": {"zoneName": "Whole screen"}}

Set screen layout:

{"operation": "layout/set", "parameters": {"layoutName": "Sample layout"}}

Clear set screen layout:
{"operation": "layout/clear"}

Get device info:
{"operation": "deviceInfo"}

Toggle fullscreen view for the main zone
{"operation": "fullscreen/toggle"}

Get list of zones:
{"operation": "zones"}

Set volume:
{"operation": "volume/set", "parameters": {"vol": 5}}

Reload app:
{"operation": "reload"}

Reboot device:
{"operation": "reboot"}

Synchronize files:
{"operation": "synchronize", "parameters": {"url": "https://example.com/data.zip", "method": "GET", "target": "file.zip", "clearFolder": false}}

Zone name in the parameters is optional, if no zone name is set, the operation will be performed in the main zone of the screen layout.

Slideshow app supports communication with other devices using serial port (RS-232), either using direct RS-232 port (if your Android device has it) or using USB-to-serial converter.

This feature can be also used for communication with Arduino and similar devices.

Supported devices

If your device has a native RS-232 port, it is possible to use it directly, but rooted access might be required on some devices.

For USB-to-serial adapter to work it is necessary that the Android device has a free USB port and supports USB host (virtually all Android boxes do). USB-to-serial adapters based on the following chips are supported:

  • FTDI FT232R, FT232H, FT2232H, FT4232H, FT230X, FT231X, FT234XD
  • Prolific PL2303
  • Silabs CP2102 and all other CP210x
  • Qinheng CH340, CH341A, CH9102
  • Arduino using ATmega32U4
  • Digispark using V-USB software USB
  • BBC micro:bit using ARM mbed DAPLink firmware
Permission to access a USB device has to be granted manually on the screen of the Android device the first time a USB-to-serial adapter is connected. Prompt will be displayed automatically after the supported adapter is plugged in.

Serial communication setup

Configuration of the serial port can be done through Slideshow’s web interface – menu Setting – Device settings – section Serial port. Baud rate, data bits, stop bits and parity have to be set in Slideshow settings exactly the same as on the second device. Selected baud rate has to be supported by the serial port on the Android device.

List of currently detected serial ports on the particular Android device can be found through menu Information – About device – Available serial ports.

Using serial port

If text read from serial port is in JSON format and starts with {"operation", it is processed as an API command (see MQTT API for the list of supported commands). The result is then written back to the serial port. Data from and to the serial port are processed in ASCII encoding, not UTF-8.

It is also possible to read from serial port and write to serial port through Triggers. ASCII and HEX formats are supported for detecting input and writing output.

 
Sample triggers: display file "image1.jpg" if received text "START" from serial port and send text "CLICK" to serial port if there has been a click in the top right corner of the screen.

Slideshow supports receiving commands through Open Sound Control (OSC) network protocol, which can be used for connecting Slideshow to various music and video systems.

The set up can be performed via the web interface – menu Settings – Device settings – Open Sound Control (OSC). Reload is required for applying any change in the settings. In OSC controller (e.g. music synthesizer) Slideshow device should be added using its IP address and the same network port which is entered in Slideshow settings

Commands received from Open Sound Control can be used in Triggers (web interface – menu Settings – Triggers) to set up actions when a particular OSC command is received.

Recording the received messages is possible through the web interface – menu Information – Open Sound Control. This page is available mainly for debugging purposes, to see what messages and arguments Slideshow received.

Slideshow app can display web pages and HTML files on the screen using a WebView component of Android.

The WebView component can be updated separately from Android system and Slideshow app by updating Android System WebView app from Google Play Store or other sources. Keeping the WebView component up-to-date is important for displaying web pages that require the most recent version of the web browser. The default WebView component is based on Chrome browser, you can change the provider via Android settings – Developer options – WebView implementation.

User-Agent HTTP header used for requesting external web pages can be changed with a setting User agent for HTTP requests. The default User-Agent based on the actual browser core (which is used if the setting is empty) is the best option for most use-cases.

Displaying web page using URL file

Entire web pages from the internet can be displayed using a file with .url file extension. If Slideshow detects such a file, it will read the URL address and display the containing website on the screen.

Format of the .url file can be:

  • Plain text file with a single line containing the URL address of the website
  • URL file created by File manager in Slideshow’s web interface (right click – New file – URL) and edited (right click – Edit file – Enter web page)
  • URL file created in Windows (see https://fileinfo.com/extension/url)

Online websites can be displayed on the screen only if the device running Slideshow app is connected to the internet. Only pages which are successfully loaded are displayed on the screen. If you are an IT specialist, you can use this functionality for example for displaying Zabbix or Grafana dashboards.

Password-protected web pages can be displayed using two methods:

  • Pages protected with HTTP basic authentication can be displayed by entering the URL in format https://username:password@webpage.domain, for example https://user:pass123@example.com. In case the username or password contains a special character, it has to be URL-encoded.
  • Pages protected with a login form, you can use the “Enter web page” editor in File Manager. Click on the Scan page button, fill in the details and click on Save. As there are many various methods for login form, this method might not work on all pages.
Accessible domains can be restricted via the “Enter web page” editor, by filling “Available domains”. If you leave this field empty, all domains are allowed. Multiple domains can be separated by comma (,). In case you fill some domains, Slideshow will allow redirecting only to links in the listed domains, including their subdomains. Loading external JavaScript, CSS and font files is not restricted by this domain list.
Opening “Enter web page” in File manager
Dialog for entering the web page

Displaying HTML file

Slideshow can directly render files with .html file extension. The HTML file can contain regular HTML code, including iframes and JavaScript, which gives you vast posibilities. The exact supported set HTML/CSS/JavaScript features depend on the version of Android System WebView app.

The default background is transparent, in order to allow HTML overlay. If you would like to have a non-transparent background, add style="background-color: white" to tagorin the HTML file.

HTML files can be also directly edited in a WYSIWYG editor via the web interface – menu File Manager – right click a HTML file – Edit file – CKEditor. Other editors are available as well, including plain-text editor TextArea.

Displaying HTML widgets

As an example, using Twitter Publish, you can create an HTML snippet with your Twitter feed, save it as an HTML file to Slideshow and display the Twitter feed on the screen. You can find example with Slideshow’s Twitter bellow: content of the HTML file on the left and the result as rendered by Slideshow app on the screen on the right

				
					<html>
<style>body, html {margin: 0}</style>
<body>
<a class="twitter-timeline" data-lang="en" data-width="960" data-height="1080" data-theme="dark" href="https://twitter.com/SlideshowPlay?ref_src=twsrc%5Etfw">Tweets by SlideshowPlay</a>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</body>
</html>
				
			

You can setup up displaying RSS feeds on screen by creating a new content with type “RSS messages” and adding it to your playlist. Alternatively, you can use sample screen layout “With side panels” as a starting point.

Dialog for adding new content

Source of RSS file

  • The source of displayed RSS messages can be setup through the field URL for RSS messages in RSS content setup. There are several possible types of sources:

    • From the internet – enter the URL of the RSS file, for example http://feeds.bbci.co.uk/news/rss.xml.
    • Local file – enter name of the file uploaded or copied to Slideshow. We suggest using a file with .rss extension.
    • Local messages – enter “local” (without quotes) as URL. Messages added through web interface – menu Tools – RSS messages will be displayed.

    You can enter multiple sources for one content, delimit them with comma (,). Messages from all sources will be displayed in cycle, starting with the first message of the first source and ending with the last message of the last source.

    In case the RSS feed contains HTML/XML tags you don’t want to display on the screen (string such as &nbsp; or <img ...>, enable “Remove XML tags” options on Edit content page.

    File https://slideshow.digital/wp-content/uploads/2020/06/sample.rss is available for testing, it contains a minimal example needed for Slideshow with two messages. If you would like to host your RSS files in cloud, you can use www.rss-hosting.com.

Description of RSS file

  1. RSS format is plain-text XML format, so it can be easily edited manually using a text editor. You can find descriptions of the format on Wikipedia or W3schools. Slideshow displays only tags “title” and “description” (alternatively “summary” or “content”) from each message of the RSS file on screen. Title is displayed with bold font, description with regular font.

    If you want to create an RSS file by yourself and want a more advanced tool than a simple text editor, you can try for example RSS Builder.

Among other things, Slideshow can also display weather forecast from the internet on the screen. Displayed weather forecast consists of an icon, date and temperature range for a day. Optionally, you can enter custom text that will be displayed above the forecast.

Setting up weather content

You can setup displaying weather forecast by creating a new content with type “Weather” and adding it to your playlist. Alternatively, you can use sample screen layout “With side panels” as a starting point.

Slideshow can display weather for a maximum of 4 days, vertically (with number of columns set to 1) or horizontally (with number of columns set to 4).

The temperature is displayed in degrees Celsius by default. Switching to degrees Fahrenheit is possible by enabling option “Temperature in °F” and changing the “Text template” to EEEE': %.0f to %.0f °F' in the content.

By selecting icon style on the Edit content page, you can change the style of the weather icon displayed on screen. Samples from the available styles are in the image below.

Weather sources

Different online sources of weather forecast can be used in Slideshow. In order to use some of these sources, you have to first create an account on the respective site (usually for free). You can find comparison of the sources in the table below.

Setup of the weather source is through the web interface – menu Settings – Device settings.

Name of the forecast source Open-Meteo OpenWeatherMap HERE Maps Norwegian Meteorological Institute (MET Norway)

Website

https://open-meteo.com/

https://openweathermap.org/

https://developer.here.com/

https://www.met.no/en

Registration

Not required

https://home.openweathermap.org/users/sign_up

https://developer.here.com/sign-up?create=Freemium-Basic&keepState=true&step=account

Not required

Limit for free account
10 000 requests per day
60 requests per minute
250 000 request per month
Fair usage
Where to get the API key
Not required
https://home.openweathermap.org/api_keys – Generate new key
https://developer.here.com/projects – create new project and generate key in the REST section
Not required
What to enter in the Slideshow’s Device settings
Weather source: Open-Meteo
Weather source: OpenWeatherMap (hourly) API key for weather: {API key} (change for your actual value)
Weather source: HERE Destination weather API key for weather: {API KEY} (change for your actual value)
Weather source: MET Norway (yr.no)

Slideshow caches weather forecast for a particular location for 1 hour, so a single free account on both services is good enough for displaying weather information on several devices. However, if you are looking for guaranteed SLA or have over 50 devices, we recommend looking into the paid accounts on either of the services.

Also, don’t forget to read through the license terms of the weather source and add credit to the provider if required. Some of the services might restrict the usage to non-commercial only.

Troubleshooting

Each time the weather is refreshed from the server, there is an entry in the Slideshow’s logs (web interface – menu Information – Log):

2020-10-25 17:47:20 INFO sk.mimac.slideshow.weather.WeatherReader - Weather refreshed (location=Punta Arenas)

In case something goes wrong while downloading new weather data, there is a warning entry in the logs. For example, if API key is missing, there will be following entry in logs:

2020-10-25 21:46:16 WARN sk.mimac.slideshow.weather.WeatherReader - Can't refresh weather: OpenWeatherMap API key not found, please obtain it on https://home.openweathermap.org/users/sign_up and enter it in the Device settings

Slideshow supports playing HTTP and RTSP video streams on the screen using content with type “Audio/video stream”.

HTTP or RTSP video stream can be produced for example using VLC media player on Windows or Linux, from a IP security camera or other sources.

If you would like to display YouTube video or YouTube live stream, use content type “YouTube video” instead of “Audio/video stream”.

If you would like to display live image from a different device with HDMI output, you can use content type “Video input” on supported devices.

We recommend setting video player type to ExoPlayer for displaying video streams, as it has much better support for live streams than the native Android video player. However, support of stream containers and codecs is still highly dependent on the device, in reality not every device has good support for live streams. On some devices, there are even differences between the native video player and ExoPlayer. We recommend thorough testing before you start using video streams for your customers.

Slideshow supports playing HTTP audio streams as a background audio using content with type “Audio/video stream”. Thanks to this, Slideshow can be used also as a headless music player, without any screen.

Steps necessary to set up playing audio streams through Slideshow’s web interface:

  1. Create new content with the following setup:
    Type: Audio/video stream
    Path: direct URL of audio stream of your choosing
  2. Edit automatically created playlist and set Sound: Audio playlist.
  3. Go to menu Playlist – Audio playlists schedule and set up schedule for the audio playlist

Only HTTP / HTTPS audio streams are supported. Audio stream URLs for various internet radios can be found for example on https://streamurl.link/, or on the website of your favorite radio. The URL has to point directly to the audio stream, not to a website containing an embedded audio player.

If the stream also has a video part and it is set as an audio playlist, the video part of the stream will be ignored and only audio will be played.

The status of the background audio playback is available on the home page of the web interface, in Media status & control.

Name day is a tradition in some countries (mostly in Central Europe), that people with a particular given name celebrate on a selected day of the year. The celebration is similar to a birthday celebration. You can find out more about this tradition on https://en.wikipedia.org/wiki/Name_day or https://www.behindthename.com/namedays/.

By creating content with type “Today’s name day”, Slideshow can display on the screen which name celebrates name day on the current day. Slideshow has an offline copy of the list of names for several countries, there is no need to be connected to the internet to display the name.

Source of the names for particular days is this open-source repository: https://github.com/milan-fabian/name-day-list.

Slideshow can display current feed from a camera connected to the Android device or from an HDMI input on the screen using content with type “Video input”.

In order to display the content of video input on the screen,  Slideshow requires permission to access the camera. You can grant this permission from the on-screen menu – Basic settings – Request camera permission. If this option is missing from the Basic settings, the permission has been already granted and it is not necessary to grant it again.

List of currently connected video input devices as well as their maximum resolution can be viewed via the web interface – menu Information – About device – entry Video input device. Slideshow always picks the most suitable resolution based on the dimensions and aspect ratio of the zone where the picture is displayed.

Video input can’t be used at the same time as face detection from the same camera, as two services can’t use the same camera at the same time (Android operating system doesn’t allow it).

HDMI input

Displaying content from the HDMI input port is currently supported only on devices based on Realtek RTD1619DR chip (tested only on Zidoo Z9X). It can be activated by creating content with the Video input device “Realtek HDMI IN”. If you don’t see this Video input device in the list on the Edit content page, your device is not supported. Video as well as audio from the HDMI input is supported.

The current status of the HDMI input can be verified through the web interface – menu Information – About device – entry Video input device – link Realtek HDMI IN.

It is possible to display an Android widget inside a zone of a screen layout using content with type “Android widget”. The list of widget providers contains all providers of the widgets installed on the particular Android device. Additional widget providers can be added by installing various widget apps to the Android system (either manually or through Google Play Store).

After adding new content with the type Android widget you might get a permission dialog on the screen of the Android device, which has to be confirmed.

Some of the widgets require configuration through the screen of the Android device. The configuration can be started using the “Start and configure widget” button when saving the content.

Slideshow lists only actual system-registered widgets. It might differ from the list of widgets in your Launcher, as it usually lists app shortcuts as well as launcher built-it widgets.

Slideshow contains several different video players, each using a different method to render videos on the screen. As there is a great variety between hardware video decoders of various manufacturers, each device model might work best with a different video player.

By default, ExoPlayer + TextureView is used. If you want to change the video player, you can do so via web interface, menu Settings – Device settings, item Video player type. Reload the app or refresh your screen layout to apply the change.

Native Android player

Most conservative option, which uses Android’s native video player. You can find a list of supported codecs and containers on https://developer.android.com/guide/topics/media/media-formats#video-codecs. The exact codec and bitrate support is highly dependent on the hardware. Use this option if ExoPlayer doesn’t work correctly on your device.

ExoPlayer

Slideshow also contains a video player based on ExoPlayer project. It supports the same codecs as a standard video player, but the support of video containers varies, for example AVI and WMV are supported only by the native Android player.

It supports following features on top of the native video player:

  • Shorter lag between videos: if there are two videos one after another to be displayed on the screen, ExoPlayer supports pre-buffering the next video in the playlist. Thanks to this pre-buffering, the time between end of the first video and start of the second is down to approximately 40 milliseconds (highly depends on the actual device), which is barely visible to the users. In order for the pre-buffering to work, setting Preload content in playlist has to be enabled in the Device settings.
  • Scaling videos: the videos within the zone are scaled with the same options as images: Fit center, Center crop, Fit to screen and Center (no scaling). You can change the scaling type either through the Device settings in the web interface (Image scale type), or through the Basic setting in the on-screen menu.
  • Rotating videos: together with rotating the screen layout, it also rotates the video in the correct way
  • Better support for video streams: ExoPlayer has better support for streaming through network protocols (e.g. HTTP / RTSP / UDP / RTMP).

You can choose whether you would like to use ExoPlayer in combination with TextureView (supports overlaying two videos on top of each other) or SurfaceView (supports 4K output on devices without 4K framebuffer, support HDR on devices with HDR support).

Recommended video format

If you would like to encode your video in the best way, we recommend the following settings. They are based on our testing and should be compatible with all usages on all devices running Slideshow.

Container: MP4 (MPEG-4 Part 14)
Video codec: 
H.264 (MPEG-4 AVC)
Audio codec: AAC (stereo)
Resolution: the same as the resolution of the device

The actual list of video decoders detected on your Android device can be viewed through the web interface – menu Information – About device – see the list at the bottom. Please note that this list is reporter by the device, there is no guarantee that the video playback will work flawlessly with these decoders.

WinSCP with prepared connection to Slideshow via FTP

Transitions

  • Slideshow allows you to set up various transitions (or animations) between two consecutively displayed images or PDFs in one zone.

    Transitions can be set up via web interface, menu Screen layout – Edit screen layout, after double-clicking a particular zone. You can choose different transition types and lengths for each zone. We suggest using length between 300 and 2000 milliseconds for the best effect. After saving the transition settings, refresh the screen layout to apply changes immediately.

    Available transition types:

    • No animation – there will be no animation between two images, they will change immediately
    • Fade out – dissolve the previous image
    • Crossfade – smooth transition / dissolve between images, background may be partially visible
    • To right – old image moves to the right
    • To left – old image moves to the left
    • To top – old image moves to the top
    • To bottom – old image moves to the bottom
    • Shrink – old image shrinks to the center
    • Rotate & shrink – old image shrinks to the center while rotating
    • Enlarge & crossfade – old image enlarges and fades out
    • Explode – old image explodes into 3×3 parts
    • Fold – old image folds to the left border
    • Horizontal flip – the images flips horizontally (along Y axis)
    • Vertical flip – the images flips vertically (along X axis)
    • Hide – old image will be hidden and new images will be displayed after the animation length, displaying only the background in the meantime
    • Inside cube (from right) – simulates a 3D cube from inside, transition is always from right
    • Inside cube (random direction) – simulates a 3D cube from inside, transition is from random direction (right, left, top or bottom)
    • Outside cube (from right) – simulates a 3D cube from outside, transition is always from right
    • Outside cube (random direction) – simulates a 3D cube from outside, transition is from random direction (right, left, top or bottom)
    • Random – picks random animation each time from all available except No animation and Hide

    Transition of large screen areas requires significant CPU power to render smoothly, so it may lag on slower devices.

     

Examples of some of the available transitions

Animations

Images and PDFs displayed on the screen can be animated, for example slowly zooming in or out, or slowly moving to the side. Animations can be set up through the web interface – menu Content – Edit – Image animation types & speed. If multiple animation types are selected, a random one will be used for each image.

Sample screen layout “With animation and time” (menu Screen layout – button Sample screen layouts) can be used as a starting point for setting up animations. Not all combinations of transitions and animations are working smoothly on all devices. We suggest testing your combination before using it live.

In case you want to display content on your TV in portrait mode or rotate the content by any other way, Slideshow offers two options how to achieve it:

Screen layout rotation

Screen layout rotation can be set through the web interface, menu Screen layout – Edit screen layout –  Rotation. The layout can be rotated by 90°, 180° or 270°, but only the layout is rotated, the on-screen menu stays as it was.

Rotation screen layout is supported universally on every device (support doesn’t depend on the hardware). For video playback on rotated layouts we suggest using the player type ExoPlayer + TextureView or ExoPlayer + SurfaceView (see Device settings).

Android screen orientation

Screen orientation of the entire Android system can be set through the web interface, menu Settings – Device settings – Screen orientation, or through Basic settings – Screen orientation in on-screen menu.

There are two sets of options:

  • Default, Portrait or Landscape
  • Simulating change of orientation sensor, for rooted devices only (might affect other apps as well)

Support of these options depends on the particular hardware model, not every manufacturer supports all of them on their devices. If changing Screen orientation and restarting Slideshow app produces no change on your device, we suggest falling back to Screen layout rotation described above.

You can select a custom font for displaying plain text, date and time, weather, RSS news or name days via web interface – menu Content – Edit.

Native fonts on Android 4.4 and older

On older Android version (< Android 5), only three default fonts are available: sans-serif, serif and monospace. Default font is sans-serif.

Native fonts on Android 5 and newer

On newer Android versions (Android 5+), all fonts installed in Android are available in Slideshow. The exact list depends on the particular Android image, but usually contains 15+ fonts preinstalled. On most devices, the same font might be installed under two or more different names.

Own fonts

If you would like to use a font that isn’t bundled in your Android image, you can upload it via web interface, menu Settings – Fonts. Supported font formats are TrueType (TTF) and OpenType (OTF). You can then pick any of the uploaded fonts in the Edit content form, they are marked with an asterisk before their name.

If resolution of image or video doesn’t match the resolution of the zone where it should be displayed, Slideshow can scale the picture using various methods, which differ in how much is the picture scaled up or down and whether the aspect ratio is preserved.

The method for scaling can be set globally via web interface – menu Settings – Device settings – item Image scale type or on-screen menu – Basic settings – item Image scale type. Scaling videos works only if you are using Enhanced video player.

You can find examples of various scaling types below for the reference. They each display the same image in several different zones, each zone has dark grey background.

Fit center

Maintains the original aspect ratio. Scales the image so both width and height are the same or smaller as the zone. Might display some of the background of the zone.

Center crop

Maintains the original aspect ratio. Scales the image so both width and height are at the same or larger as the zone. Might crop some parts of the image. Never displays any of the background of the zone.

Fit to screen

Doesn’t maintain the original aspect ratio (image can become distorted). Scales the image so both width and height are the same as the zone. Never displays any of the background of the zone.

Center (no scaling)

Maintains the original aspect ratio. Doesn’t scale, uses the original width and height of the image – be careful with extra large images, they will occupy a lot of RAM.

Blurred image background

In addition to scaling described above, it is possible to achieve blurry background effect for images in zones that don’t match the image aspect ratio through option “Image background type” in Content configuration (web interface – menu Content – Edit). In case “Image background type” is set, Fit center scaling will be used automatically, overriding any global Image scale type setting. This setting is available for Content types Single file, Files randomly and Files alphabetically and it is applied only for images, not for videos.

While displaying images, videos or web pages, it is possible to automatically display additional dynamic description text in the top left corner of the zone.

The setup can be done via the web interface – menu Content – Edit by filling out Description text and Text color. It is available for content types Single file, Files alphabetically, Files randomly, Audio/video stream and Video input.

  • Description text – template text which will be displayed on the screen. Can contain several placeholders, which will be replaced dynamically:
    • {FileName} – full name and path of the currently displayed file
    • {FileNameShort} – name of the file without folder and file extension
    • {ItemName} – name of the content which is displayed
    • {DateTime} – date and time when the picture was captured, from EXIF tag of the image
    • {...} – additional data from EXIF tags of the image
  • Text color – color of the text on the screen. The background color will be calculated automatically as a semi-transparent complementary color. To turn off the background color, set the text color to semi-transparent.

General settings of Slideshow can be changed via the web interface – menu Settings – Device settings. Applying the change of some of the settings requires reload of the application (close and reopen), for example through menu Settings – Reboot / reload – Reload application.

You can backup and restore these settings using XML configuration backup.

Setting name Type Default value Description
General settings
Device name
Text
Device model
Default volume in %
Number between 0 and 100
Volume for videos, music or internet radio, from 0% to 100%. You can change the current volume on the home page.
Language
Choice
Device language or English
Language of the user interface.
User agent for HTTP requests
Text
HTTP User agent header used for requests made by this app, for example for displaying web pages or downloading content. Reload is required for applying this change.
Allow uploading all file types
Checkbox
No
Allow all file types (not just supported images, videos etc.) through the File manager, File synchronization and USB flash drive.
Keep screen on
Checkbox
Yes
Keep the device’s screen on while this app is running. Reload is required for applying this change.
Keep the background service
Checkbox
No
Keep the background service running even if the app is not in the foreground. Web interface, FTP and other services will be available even if the app is closed, as long as the notification in the Android status bar is active. Reload is required for applying this change.
Enable watchdog service
Checkbox
No
Enable background watchdog service, which will start the app again if it is not in the foreground for longer than 2 minutes. Only for devices used exclusively with this app. Device restart is required for applying this change.
Screen layout
Screen orientation
Choice
Default
Screen orientation for this application. Some options might not work on some devices (support depends on the hardware). Reload is required for applying this change.
Rotate layout every day
Checkbox
No
If checked, screen layout will be swapped vertically or horizontally every 24 hours in order to prevent screen burn-in.
Use screen layout intervals
Checkbox
No
If checked, screen layout intervals will be used for automatic determining the current screen layout, instead of screen layouts schedule. Reload is required for applying this change.
Wait with screen layout change
Checkbox
No
Change the screen layout based on interval or schedule only after the content playing in the main zone is finished (for example, don’t interrupt video in the middle).
Length of showing playlist manually
Number
3600 (= 1 hour)
How many seconds will be manually chosen playlist (through keyboard or web interface) shown
Reset order on playlist change
Checkbox
No
Reset order of items with alphabetical type after the playlist is changed or manually selected. If not checked, the order will be preserved across playlists and screen layouts.
On-screen formatting
Image scale type
Choice
Fit center
How to scale images (and videos, if enhanced video player is used) shown on the screen. Reload is required for applying this change.
Respect image orientation
Checkbox
Yes
Read image orientation from JPEG EFIX attributes and rotate the image on screen accordingly. Slightly lowers the performance.
Video player type
Choice
ExoPlayer + TextureView
Type of internal player for video playback on the screen. If you have a problem with video playback, try changing this setting. Reload is required for applying this change.
Preload content in playlist
Checkbox
No
Allow loading some of the content (e.g. video files) in advance, so the delay between files is shorter.
Video input compatibility mode
Checkbox
No
Usable only on Zidoo Z9X box. Reload is required for applying this change.
Max video duration
Number
Infinity
Maximum time for video playback in seconds. Usable only on older devices, if videos tend to get stuck.
Video stream buffering (in ms)
Number
Duration of network buffering in milliseconds before the video stream playback is started. For ExoPlayer only.Reload is required for applying this change.
CSS style for Excel
Text
For advanced users. CSS rules for showing Excel file, for example font-size:120%
Default web page zoom
Number
-0
Zoom of web pages displayed on screen, in percentage. Zero means default (system) zoom. Can be overridden in the .url file using “Enter web page” editor in File manager.
Disable security for web pages
Checkbox
No
For displaying web pages on the screen, CORS check and HTTPS certificate check will be completely disabled. This option is very insecure, only enable it if you are aware of the security implications. Reload is required for applying this change.

If you are using Slideshow for digital signage, it is important to set up automatic startup of Slideshow after the device boots, in case the whole device is restarted (e.g. due to power outage).

Several ways how to do it are described below. We suggest using only one method at a time, combining multiple methods is not recommended.

Setting Slideshow as Android Launcher / Home app

  • Android Launcher app is an app providing the home screen, displaying widgets and other app’s icons on your Android device. It is the first app that is started when Android is booting up.

    If you use an Android device only for Slideshow, this is the preferred way for Slideshow’s automatic start-up, as it’s faster (can save up to 15 seconds) and looks much more elegant for the end users.

    You can set Slideshow as your Launcher app:

    1. Via on-screen menu – Basic settings, scroll down and click on “Set Slideshow as Launcher / Home application”
    2. You will get a pop-up, where you can choose Slideshow as your Launcher / Home app, select it. If there is a possibility to check “Always”, check it.
    3. Depending on your device, you might need to redo steps 1, 2, 3 one more time and click on the Always button.
    4. Reboot the entire device. Slideshow should load immediately after the booting finishes.

    Note that if you set Slideshow as your Launcher app, the Home button on your device (or remote control) will be mapped to Slideshow app. If you want to exit Slideshow or open another app, click on Exit in on-screen menu. You can unset Slideshow as Launcher app via Basic settings.

Setting Slideshow to start at system boot

If you don’t want to change Launcher / Home app on your device, you can still set Slideshow to start automatically by setting “Start at system boot” via on-screen menu – Basic settings. After Android boots up, it will start your regular Launcher app at first and then after a few seconds, Slideshow will start.

Depending on your Android version, you might need to allow “Appear on top” permission in Android (the name of the permission might differ in various Android versions). In case this permission is necessary for automatic startup, Slideshow will try to automatically navigate you to the relevant Android settings. If you receive the “You will be taken to Android settings to allow this permission” message, but Slideshow fails to navigate you there, please try opening Android Settings – Apps – Slideshow – Permissions and allow “Appear on top” or “Display over other apps” permission.

Using the possibilities of the Android image

On some devices, users can simply set the application to start automatically after boot by long clicking Slideshow icon in the list of installed apps and choosing “Launch on startup” or similar option.

This option is available only on some devices, it depends whether the device manufacturer added this possibility to the Android image for the particular model.

Other useful features

You can combine automatic startup with two useful features of Slideshow:

  • Setting Android’s wallpaper to Slideshow’s “Loading” screen
  • Setting Android’s bootanimation to Slideshow’s “Loading” screen (available only on rooted devices)

You can set both of them via web interface – menu Settings – Device settings – scroll down and press button Set wallpaper / Set bootanimation.

It is possible to assign various actions to pressing different keys on a USB keyboard connected to the Android device or on a remote control (if the particular Android device has one). This way it is possible to fully customize remote control for interactively controlling playback in Slideshow.

Keyboard shortcuts can be modified via the web interface – menu Settings – Key mapping. You can backup and restore the modified shortcuts using XML configuration backup (section Key mapping).

If you want to disable these keyboard shortcuts altogether, click on menu Setting – Device settings and check “Disable keyboard”.

Default keyboard shortcuts

Key Function

A

Show software settings
Can be also opened from on-screen menu – Basic settings

B

Beep (test for speakers)

D
Show display settings (Android settings)
F
Toggle fullscreen layout (switches the main zone to whole screen), works only if there is more than one zone in the current screen layout
H, F SPACE
Show help Can be also opened from on-screen menu – Help
I
Show information about the device Can be also opened from on-screen menu – Device information
L
Swap screen layout horizontally or vertically, works only if there is more than one zone in the current screen layout
R
Reload the application (close & reopen)
S
Show WiFi settings (Android settings)
W
Show advanced settings, which is basically the same as web interface Can be also opened from on-screen menu – Advanced settings
Arrow right BACKSPACE FORWARD
Show next content / file
Arrow left BACKWARDS
Show previous content / file (works only if displaying files sorted alphabetically)
Arrow up
Press and hold: pause the playlist (or video) in the main zone for the duration of hold
PAUSE PLAY
Pause or resume the playlist (or video) in the main zone
PAGE UP
Change the length of currently shown content to 1 second longer
PAGE DOWN
Change the length of currently shown content to 1 second shorter
DELETE
Delete currently shown file (use carefully)
ENTER MENU
Open the on-screen menu Can be also opened by swiping from the left side of the screen
Numbers 0 – 9 F10, F11, F12
Changes the current playlist in the main zone to the one with this number, valid for numbers 0 to 12 (playlist numbers can be set through web interface – menu Playlists – Edit playlist)
Volume keys
Works as expected – volume up, volume down, mute

You can change the language of Slideshow’s user interface and web interface either through web interface – menu Settings – Device settings – Language or through on-screen menu – Basic settings – Language.

This choice of language has no effect on the language of date/time and weather forecast displayed on the screen (names of days of week and months can be displayed). You can select this language separately via web interface, menu Content – Edit. List of supported languages for date and weather panel depends on your Android image and usually contains 100+ languages on newer versions of Android.

Currently supported languages

  • Chinese (thanks to evin792)
  •  Croatian (thanks to Josip Papić)
  •  Czech (thanks to Aleš Obst)
  •  Dutch (thanks to Jule Hintzbergen)
  •  English
  •  French (thanks to Ahmed Karboubi)
  •  German (thanks to Stefan Preitschaft)
  •  Italian (thanks to Michele Fioretti & Nicola Pinto)
  •  Japanese (thanks to Takashi Yamaguchi)
  •   Korean (thanks to Seok Gyo Seo)
  • Polish (thanks to Piotr Bujalski)
  •  Portugese (thanks to Jorge Soares)
  •  Russian (thanks to Sergej Karpovič)
  •  Slovak
  •  Slovenian (thanks to @AdmiralStipe)
  •  Spanish (thanks to Rafael García)
  •  Turkish (thanks to İlker Berberler)

Adding new language

If you want to add your language, either create a pull request on our GitHub repository, or send us this Excel file with added translation. Either way, we will be very happy to add your translation to the next version of Slideshow, of course with proper credits to you.

If you use a translation service (such as Google Translate) as a help, please review every translation manually afterwards. Such services tend to break some of the formatting and the quality of the translation without manual check is not sufficient.

If the Android device running Slideshow app has a camera (either integrated, like a camera on tablet, or USB camera), it can be used for detecting how many people are currently in the area in front of the camera. This number can be used for estimating how many people can see what is on the screen at the moment and for either interactively triggering a content on the screen or for further analytical and statistical purposes.

The face detection is done using a machine learning algorithm, which runs entirely on the Android device. No internet connection or special hardware is needed, the calculations are done using CPU.

If you would like to further integrate the face detection feature with an external system, please contact us.

Setup

Following steps are needed for enabling face detection:

  1. On-screen menu – Basic settings – Request camera permissions – allow Slideshow to access the camera on the Android device. If this option is missing from the Basic settings, the permission has been already granted and it is not necessary to grant it again.
  2. Web interface – menu Settings – Device settings – select input camera under Camera for face detection and setup other options if needed. If you are using a USB camera and it is not listed in Device settings, please verify that it is correctly plugged in and supported by Android system (not all Android builds support all USB cameras).
  3. Reload Slideshow app in order to apply the settings.
  4. Wait 10 seconds after startup, navigate to web interface – menu Information – Face detection to check whether the camera image is correct. Refresh this page in order to get updated image and statistics.

Usage

The quick overview of the face detection status can be seen on the Home page of the web interface. If the face detection is active, Face detection widget containing statistics will be displayed. By clicking on the Number of faces link detected in the last frame (alternatively through menu Information – Face detection) you can open a page with detailed statistics for the last 60 frames, as well as the last processed image from the camera. All detected faces together with their tracking IDs are marked in red and probability whether each eye is opened is marked with blue and green.

Results of face detection can be used in Triggers to trigger a change in playback. For example detecting a person close to the camera can trigger a different playlist on the screen.

Face detection can’t be used at the same time as video input from the same camera, as two different processes can’t use the same camera at the same time.

Using triggers, you can setup advanced conditions and actions for your digital signage playback.

Trigger setup is possible through the web interface, menu Settings – Triggers. It is possible to backup and restore triggers using XML configuration backup.

Setting up a trigger

The basic building block of each trigger is the control element. There can be multiple control elements defined, each one is evaluated separately. Each control element defines:

  • Which event starts this trigger – screen was clicked, face detection was run, key was pressed or minute timer was run.
  • What are the conditions for this trigger – for example position of the screen click, how many faces were detected, what time it is and more. Conditions can be combined using logic predicates “and”, “or” and “not”.
  • What action should be executed if the conditions are satisfied – for example change playlist or screen layout, display particular file, pause or resume playback etc.

You can add building blocks from the left menu to the workspace using drag&drop. Make sure that the building block is not whited out after placing it in the workspace, as it might indicate the output type of the block doesn’t fit the input type of the other block.

After the triggers are saved, the actions will be automatically executed if the event occurs and the conditions are satisfied.

Examples

If screen was clicked in the top 10% and it is Monday, change the current screen layout to “Special Monday layout”
If more than 10 faces were detected on average in the last 3 frames, display file “welcome.jpg” in zone “Left side” for 15 seconds
Every minute check if the current playlist in the main zone is not “Night playlist” and it is before 5:30 AM, if true, clear the manually set playlist in the main zone and beep

Synchronized playback means displaying media on two or more screens at the same time, for example the same video is started at the same moment on two TVs, or two sets of pictures are always changed at the same moment.

Slideshow support synchronized playback either across multiple screen layout zones on the same device, or across multiple devices on the same local network.

Synchronizing devices

For synchronized playback across multiple devices, all devices have to be on the same local network, connected via LAN cable (WiFi is not supported for synchronized playback) and communication between devices has to be set up. Synchronized playback will work only between devices with the same Devices group code setting.

We highly suggest using the same hardware and firmware version for synchronized playback across multiple players, for example the same model of Android boxes. As video loading differs a lot between various devices, the delay between starting video playback on two devices from various manufacturers might be too high (more than 200 milliseconds). Using the same model of display is also important in order to reduce the lag.

When using the same device model, the delay between synchronized playback on multiple devices is usually lower than 50 milliseconds, which is not visible to regular viewers.

 

Synchronizing playback of playlists

Playlists that should be played synchronously should have the same Sync code set. This can be changed via Slideshow’s web interface – menu Playlists – Edit playlist – Sync code. If no Sync code is set, the playback won’t be synchronized.

We suggest using content type “Files alphabetically” instead of “Files randomly” for synchronized playback. Enabling “Preload content in playlist” setting is also encouraged.

Checklist for synchronized playback across multiple devices

  1. Navigate to menu Settings – Other devices, set up the same Devices group code on all devices and verify that you can see all devices in the list on this page.
  2. Edit the playlist that should be played synchronously, set the same Sync code and Content duration on all devices.
  3. Verify that there is either the same number of content in the playlist, or (in case of files) that the content type is “Files alphabetically” (not Files “randomly”) and that there are the same number of files in this content across all devices.
  4. Activate the playlist on all devices, preferably adjust the schedules as well.

While Slideshow works without any problems on non-rooted Android devices, there are a couple of extra features which are available only on rooted devices, mostly due to security restrictions of Android.

If you are not familiar with the concept of rooted Android, you can find out more for example on https://en.wikipedia.org/wiki/Rooting_(Android).

Here is list of Slideshow’s extra features available only on rooted devices:

  • Web interface on port 80 – Slideshow’s web interface is available by default on port 8080 on non-rooted devices and port 80 on rooted devices (the default HTTP port). Similar situation is with HTTPS (port 443 on rooted, 8443 on non-rooted) and FTP (port 21 on rooted, 8021 on non-rooted). The reason is that ports below 1000 are restricted only to system apps on non-rooted devices. All these ports can be changed in Slideshow’s settings.
  • Update app remotely – on rooted device, you can upload an APK file with a new version of Slideshow via web interface, menu Setting – Application update, or synchronize it via Google Drive / Dropbox / HTTP server / USB flash drive with the help of the setup.csv file.
  • Possibility to reboot the whole device remotely – Slideshow can trigger the system reboot on rooted devices, either by clicking on a button via menu Settings – Reboot / reload, or by setting “Reboot time (watchdog)” in the Settings – Device settings.
  • Possibility to setup Slideshow as a device owner and administrator through menu Settings – Device administrator.
  • Set device’s bootanimation to Slideshow logo, via menu Settings – Device Settings – button Set bootanimation on the bottom.

On many Android versions, even if your device is rooted, you will be asked whether you want to allow root (or superuser) access for Slideshow on the app’s first start. You might also want to turn off notification every time Slideshow uses the root access, usually through an app called SuperSU.

Note that rooting Android may damage your device and/or void the warranty. Be careful!

Slideshow can be updated remotely to a newer version using an APK file, which you can download from here. With the help of the remote update functionality, you don’t need physical access to the device in order to update the whole app and get new functionality.

Slideshow will start updating only if the update APK file differs from the one already installed on the device, otherwise it won’t do anything. You can check the current version of Slideshow on the top of the on-screen menu, or through the web interface, menu Information – About software.

Use remote update only on devices, on which you originally installed Slideshow manually through the APK file, not through Google Play store or other app stores. Always review the changes in the new version before updating.

Remote update works only on rooted devices or on devices on which Slideshow app is set as the device owner. Special handling is available for the following non-rooted Android devices: Zidoo Z9X, Philips Smart TV. For other devices, you can use only the automatic update option from Google Play store.

Remote update through web interface

If you can access Slideshow’s web interface, you can upload a new APK file through menu Settings – Application update. Update process will start several seconds after the file upload is finished and it may take up to one minute. Slideshow app will automatically reload after the update process is finished.

Remote update through File synchronization

Slideshow can be updated via File synchronization from Google Drive, Dropbox, HTTP/FTP server or from USB flash drive using command :UPDATE;APK file name;version in the setup.csv file. Use the last part of the command (“version”) to prevent Slideshow from unnecessary processing the file, if the same version is already installed. “External config import” has to be enabled in Device settings in order for this functionality to work (this setting acts a security check).

Update is always performed as a last step of the synchronization process, after all other files have been downloaded. It may take up to one minute and Slideshow will automatically reload afterwards.

Logs

While running, Slideshow is writing information about changes and problems into log files saved in the device’s internal memory. You can view these log files via web interface, menu Information – Logs. There are entries with timestamp and description of what Slideshow was doing or details of a problem.

As a default, the log file with the newest entries is displayed. If you want to view older files, pick an Archive file at the top of the page. Total size of log files is limited, so they don’t take up too much space in the storage. Old log files are deleted automatically.

Bug report

Via Slideshow’s web interface, menu Information – Bug report or via on-screen menu, item Bug Report, you can submit a bug report which will be sent directly to Slideshow’s developers. Together with each bug report, logs, configuration and device details are sent as well, in order to gather as many details about the problem as possible (see privacy policy for more details).

After receiving the bug report, we will carefully review it within a few days and reply to the email address provided. Please check your spam folder if you don’t receive a reply from us within 5 days.

If you encounter any problem with Slideshow app, sending a bug report is the preferred way of reporting a problem to us, as we can directly see what settings and configuration you used when the problem occured.

Remove application data

If you would like to delete all application data and configuration, two steps are necessary:

  1. Uninstall Slideshow application from Android operating system
  2. Delete folder “slideshow” from the internal storage of your device 

This can be useful if you would like to completely reinstall (reset) Slideshow app. If you install Slideshow app again after performing the two steps above, you will start with the default (clean) configuration and settings, without any files.