Frequently Asked Questions and Generic Advice

Introduction

Before you submit your app, be sure to read our review guidelines. This will prevent to a certain extent, misunderstanding amongst all parties involved. And it will speed up the development and review process.

Below we will provide you with as much generic advice as possible. And we answer some commonly asked questions about building apps on our platform. And what you need to keep in mind when developing an app for a STB.

Generic Advice and Things to Keep in Mind

While developing your App

  • The Design guidelines we have outlined here. Remember, you are on a TV/Settopbox. Not on a mobile phone, tablet, or desktop computer.
  • The remote control options you have available on your targeted platforms.
  • The common configuration guidelines to speed up the review process of your app.
  • Do not overwrite or add to MAF components. This is not allowed. Your app will be disapproved, resulting in more development time and more longer QA.
  • You can extend/inherit from MAF components. Our example apps show you how.
  • Avoid using HTML elements directly. This is seldomly needed. You can achieve almost anything with the components provided. If you feel that this is not enough, contact us for advice on how to deal with your specific situation.
  • There is only one mediaplayer available on a STB. It plays either a live television channel, or your apps content. Never two at the same time, overlayed or otherwise. They are mutual exclusive.
  • You are able to tune the STB to different live television channels. But doing so to often might make any STB crash.
  • You are able to request contextual information from the live television channel or program. But doing so to often might make any STB crash.
  • You can use sound(s), but it stops all other media. It may load slowly. Some STB don't deal well with swithing rapidly between multiple short clips.

Frequently Asked Questions

  • What types of Advertisements are supported?

    At this moment advertisments are only enabled via the VAST 3 protocol. Any Ad server capable of producing VAST 3 compliant XML can be used for serving ads. More information on how to implement ads in an app can be found here.
  • What types of video are supported?

    Several Settop Boxes support several types of video. The most safe, for various reasons and commonly supported type is 1280 x 720 resolution with H.264/MPEG-4 AVC codec and AAC audio, with a 4Mbit/s bitrate.
  • Does STB X have a GPU?

    Not every STB is equipped with a GPU. If you have a specific operator and/or STB in mind. Please send us an email and we can provide you with all specific hardware specs for this device.
  • How much memory is available for my App?

    Every STB has a different amount of memory. Subtract from that, the memory needed to view live television and run all other processes on the STB. And then there will be very little left for your app.
  • What about specific content types like GIF, HLS, MP3 and HTTPS?

    GIF, MP3, and HTTPS are supported by all STB's on our platforms. Some STB's have limited or no support for HLS. Please contact us for a test of your content on your desired STB.
  • What about integration with CI/CD, automation or working with larger teams?

    If you require a more specific workflow in your team, or you need to integrate building MAF apps with your CI/CD build systems. Then consider using the maf-cli module. This module allows for your project to easily depend on the MAF3-SDK and make CI and CD more simple to handle. More information and instructions can be found on npm.
  • What DRM do you support?

    We currently support DRM on two STB's. This is PlayReady DRM with SmoothStreaming. However custom implementations can be done in cooperation with operators. Please contact us to learn more about the possibilities.
  • Do you support Canvas and WebGL rendering?

    Most STB's support Canvas. However due to limited gpu presence it might not function as expected on all STB's. WebGL is only supported on a limited set of STB's. Please contact us to verify if your targeted STB is capable or not.
  • What version(s) of JavaScript do you support?

    ES5 (ECMAScript 5.1 ECMA-262) is currently the only supported JavaScript version for the development of MAF apps.
  • Can I mute the audio of the live television channel?

    On some STB's you can. On other you can only mute your own video's/audio. Please contact us to verify if your targeted STB is capable or not.
  • Are there any known issues with STB X that we need to take into account?

    As firmware on STB's is updated, specific issues may come and go. Whenever possible we will update you with details so that you can adjust your app accordingly. Please contact us to verify the latest know issues for your targeted STB.
  • Are SVG's supported?

    No, to date these are not supported. Please use appropriate images or CSS styling to build your app.
  • What CSS properties are supported?

    This varies a bit per STB. But in general all CSS 2.1 properties and selectors are supported. On some boxes a small set of additional properties is supported, like border-radius. To be sure about this, please contact us to test your app on your desired STB.
  • Can I use CSS gradients?

    No. Although some STB's support them, their processing and rendering power is not up to the task. For backgrounds we advice to use images scaled down to 960x540 pixels.
  • Do you support 4K video?

    Not yet. We are working on it. In the mean time, please use 720P for your video resolution.
  • Can I use animations?

    Yes, our framework features a .animate method for this on most components. Try to use 'translate' for this as much as possible. However, keep in mind that not all boxes are powerful enough to render complex animations. As a subjective indicator, you might use widget.getSetting('gpu'); method for this. This will indicate whether or not a gpu is present in the STB. So in these cases it might be possible to do a bit more animation.
  • How can I check for contextual information from the live television channel?

    To check for the availability of contextual data from the STB's live television channel, call the MAF.mediaplayer.getCurrentProgram(); method. It will return an Object with contextual information when available. And undefined otherwise.
  • Am I allowed to overlay my App over the live television channel?

    Yes and No. This is dependant per operator. And in some cases, some STB's don't support it. Please check with us if your targeted operator/STB has this option available.
  • Can I detect if live television is active?

    Yes, call the MAF.mediaplayer.getCurrentChannel(); method. It will return an Object with channel information if the live television channel is active. It will return undefined if there is no such thing.
  • Do I need to verify before displaying potentially adult and/or offensive content?

    Yes. To do so, you can check the profile.ageRating property. It will return an integer indicating the age from which you will need to start showing warnings or need to use the pincode before displaying specific content. It will return false if not available, or no verification is required.
  • How do I know what content types are supported?

    Call the MAF.mediaplayer.supports(mimetype); method with the mimetype you would like to check. For example application/vnd.apple.mpegURL for HLS and video/mp4 for MPEG4 video.
  • Can I use background sounds or music in my App?

    Yes you can. But be aware that this will stop any other media currently playing, as there is only one mediaplayer available. Also, the sound might load slowly, causing it to be out of sync with the visual content.