W3C Second Screen Presentation API Proof-of-Concept Implementation

Student Project (3 participants), Master Thesis

The W3C Second Screen Presentation Working Group provides specification that enables web pages to use secondary screens to display web content. This specification aims to make presentation displays such as projectors or connected TVs, available to the Web and takes into account displays that are attached using wired (HDMI, DVI, or similar) and wireless technologies (Miracast, Chromecast, DLNA, AirPlay, or similar).

The API offers interfaces for the following functions: 

  • Request availability of presentation displays. 
  • Allow a control page to launch a presentation on a selected display. The control page is any web page that the user opens in the browser on a mobile device or desktop PC. The presentation is the web page displayed on a screen such as TV, Projector, etc.
  • Allow a control page to join or reconnect to existing presentation. This is important for multi-user scenarios.
  • Allow the control page and the presentation to open a communication channel and exchange messages and binary data in both directions. 

The specification abstracts from the underlying low level APIs and protocols for discovery of displays, launch of presentation and exchange of messages. This opens the door for Browser vendors to implement the Presentation API using different technologies. For example, Google may implement the API in Chrome Browser and Cast devices like Chromecast and Android TV using Google Cast protocol. On the other side, Apple may implement the API for Safari Browser and Apple TV using Airplay protocol. Third party developers may also implement the API as Browser extension or Cordova Plugin for various technologies. 

Your tasks:

You will implement the Presentation API on top of protocols you are familiar with. The concrete protocols used in the implementation will be discussed with the advisor before the development work starts. The result will be a Cordova Plugin or a Chrome Extension. 

Required skills:

  • Web Technologies: JavaScript, HTML, CSS
  • Cordova Plugin or Chrome Extension Development (Basics only)
  • Android or iOS Basics (only for Cordova Plugin)

Related technologies:


Related FAME Projects

FAMIUM Multiscreen

Contact:

Louay Bassbouss

W3C Second Screen Presentation API Testing

Student Project

The W3C Second Screen Presentation Working Group provides specification that enables web pages to use secondary screens to display web content. This specification aims to make presentation displays such as projectors or connected TVs, available to the Web and takes into account displays that are attached using wired (HDMI, DVI, or similar) and wireless technologies (Miracast, Chromecast, DLNA, AirPlay, or similar).

The API offers interfaces for the following functions: 

  • Request availability of presentation displays. 
  • Allow a control page to launch a presentation on a selected display. The control page is any web page that the user opens in the browser on a mobile device or desktop PC. The presentation is the web page displayed on a screen such as TV, Projector, etc.
  • Allow a control page to join or reconnect to existing presentation. This is important for multi-user scenarios.
  • Allow the control page and the presentation to open a communication channel and exchange messages and binary data in both directions. 

The specification abstracts from the underlying low level APIs and protocols for discovery of displays, launch of presentation and exchange of messages. This opens the door for Browser vendors to implement the Presentation API using different technologies. For example, Google already provides initial implementation for cast devices like Chromecast and Android TV.   The next step in the W3C process after implementation is testing.  Test reports need to be published periodically. For this, W3C provides a test suite called “Web Platform Tests Project" for all W3C APIs and the Presentation APIs is one of these APIs. 

Your tasks:

You will implement test cases for all functions of the Presentation API according the process described in the Web Platform Tests Project which provides a very good documentation and libraries for making the development of test cases simple. 

Required skills:

  • Web Technologies: JavaScript, HTML

Related technologies:


Related FAME Projects:

FAMIUM Multiscreen

Contact:

Louay Bassbouss

Proof-of-concept Implementation of W3C Multi-Device Timing API

Student Project (3 participants) and Master Thesis

The W3C Multi-Device Timing Community Group (Webtiming CG) works on an API with the goal of extending the Web with native support for precisely timed operations across web pages hosted by different devices and offering a unifying timing model. Multi-device timing is particularly important for the broadcasting industry, as it is the key enabler for web-based secondary device offerings. More generally, multi-device timing has wide utility in communication, collaboration and multi-screen presentation.

A first draft of the Timing Object API is already published and a pure JavaScript implementation already exists.  The Spec defines a common API for multi-device timing resources, i.e, clocks, stop-watches, timeouts and controllers. It also provides interfaces to integrate with existing HTML Media elements like HTML5MediaElement, HTMLTrackElement, WebAnimation, and suggest adjustments to simplify integration with multi-device timing resources. 

Your tasks:

You will implement a proof-of-concept implementation of the Timing Object API as Cordova Plugin. Since a pure JavaScript Implementation of the API already exist, it is interesting to see how a hybrid (Native + Web) implementation improves the synchronization. All functions that require access to native APIs will be implemented in the native part of the Cordova plugin. All other functions that can be implemented using pure JavaScript will be implemented in the Web part (JavaScript) of the plugin. The plugin can be implemented for iOS, Android or both.

Required skills:

  • Web Technologies: JavaScript
  • Native Development: iOS or Android (Optional)

Related technologies:

W3C Multi-Device Timing CG 
Timing Object Spec

Related FAME Projects:

FAMIUM

Contact:

Louay Bassbouss