Low Power Audio Playback Whitepaper - Windows* Store App

Download Article

Windows* 8 Store App - Low Power Audio Playback (PDF)

Introduction

One of the use cases for tablets with Intel® Atom™ processors and Microsoft Windows 8* is low-power audio playback. This capability allows users to continue listening to music after the device enters a low-power state commonly referred to as Connected Standby. Connected Standby is an Always On Always Connected scenario implemented in Microsoft Windows and manifest through the new Intel Atom S0ix low-power states. Using this state, devices can save dramatically on battery life while still allowing users to listen to music.

We’ll show you how to write an HTML5 and JavaScript* application that sets up a simple audio player to take advantage of Connected Standby audio playback.

Overview of Connected Standby

(as described by Priya Vaidya)

Connected Standby is primarily designed for very low-power consumption and achieving the battery targets. It is part of the Microsoft certification, and devices need to conform to the requirement set by Microsoft for Connected Standby. A device enters Connected Standby when the “on” button is pushed or after idle timeout. Based on current testing, the power is < 100 mW1 , the Intel Atom processor Z2760 (codenamed Clover Trail) is at ~45 mW (~ 30 day of CS). This is the requirement set by Microsoft. Instant on is approximately < 300 ms1 from button press to display on. Overall system-wise, the platform is mostly asleep, only select apps execute occasionally.

Connected Standby – Flow of actions

Coding the HTML5 Application

One of the easiest ways to code for low-power audio playback on Windows 8-based tablets with Intel Atom processors is to use the new HTML5 audio tag.  By default the audio tag will NOT continue playback during the low-power Connected Standby state. To specify audio playback during this state the HTML tag needs to include an audio category attribute. The attribute name is msAudioCategory, and it needs to be set to the value “BackgroundCapableMedia.” This will specify to the underlying framework and runtime to configure everything necessary for Connected Standby playback.

One last thing that needs to be done at the application level for low-power audio to correctly function is to modify the application’s manifest. A Declaration needs to be added for “Background Tasks.” Within the declaration, a property also needs to be specified for “audio.” If using Visual Studio*, this can be done simply by opening the package.appxmanifest, choosing the Declarations tab, adding a “Background Tasks” declaration from Available Declarations drop-down list, and finally check the “Audio” Task Type in the Properties section.

This method of implementation can be seen in the Low-Power Sample app, in the files default.html and default.js. The package.appxmanifest can also be checked for the correct Declaration setup. The sample also used the ”Control” attribute to automatically add simple playback controls.

Hardware-Accelerated Audio File Playback

Related to low-power audio playback on Intel Atom platforms is hardware accelerated audio decoding. On the Clover Trail platform, a number of hardware-supported audio formats for both decoding and encoding are supported.

Audio

Encode

Decode

MP3

H/W

H/W

AAC-LC

H/W

H/W

PCM(Wave)

H/W

H/W

Vorbis

 

H/W

HE-AAC

 

H/W

WMA Pro 10/9

 

H/W

Dolby Digital

 

H/W

MPEG-1

 

H/W

MIDI

 

H/W

G.729AB/711/723.1

H/W

H/W

AMR-NB/WB

H/W

H/W

iLBC

H/W

H/W

Post proc/ echo

H/W

H/W

Summary

Low-power audio playback adds a very valuable and useful scenario to mobile devices allowing them to act as traditional music players while significantly extending battery life. Using the new HTML5 audio tag and JavaScript, it is easy to add this functionality to your application, either statically or dynamically.

Pour de plus amples informations sur les optimisations de compilation, consultez notre Avertissement concernant les optimisations.