Implementation
This guide provides an overview of Astrova-specific features and the APIs to implement such elements on the interactive.
Peripheral Bar
Astrova monitors are lighter and thinner than all previous monitors due to upgradeable components being removed and placed elsewhere. Peripherals are now contained in the modular Peripheral Bar attached to the monitor, which has a quick release feature allowing for fast replacements and upgrades.
Various configurations of the Peripheral Bar include the following:
Programmable LED accent lighting for visual notifications, animations and more
Bluetooth 5.0 for connectivity with the passenger’s Bluetooth headset.
3.5mm analog audio jacks for wired headsets.
USB Type-C and legacy USB Type-A fast charging ports.
HD camera with a lens cover for passenger needs, such as video conferencing.
Illuminated buttons for passenger functions, such as calling for the flight attendant, turning on or off the reading light or screen, and adjusting media volume.
APIs
Peripheral Bar Information
Retrieves information on the peripheral bar, such as the bar type and supported bar attributes.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
command | Name of the command. Set this to
peripheralbarInfo. | string | Yes |
app | Name of the application. Set this to
seat_settings. | string | Yes |
Example
Peripheral Bar Information Callback
Handles the response for retrieving peripheral bar information.
Interactives are automatically registered for this
callback when they call peripheralbarInfo.
Interactives must ensure that
peripheralbarState is set to 1. Otherwise, they
will need to call peripheralbarInfo.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
command | string | Name of the command. Set this to
handleEvent. | Yes |
app | string | Name of the application. Set this to
seat_settings. | Yes |
eventName | string | Name of the event. Set this to
peripheralbarInfo. | Yes |
peripheralbarState | integer | State of the peripheral bar. Values:
| Yes |
peripheralbarId | integer | Unique identifier of the peripheral bar. | Yes |
peripheralbarName | string | Name of the peripheral bar. | Yes |
barAttributes | array of strings | Attributes of the peripheral bar. | Yes |
Example
Accent Light
The Accent Light on the Peripheral Bar can be used to visually enhance the passenger’s space and overall aircraft cabin and elevate an airline’s branding. It can be customized for purposes such as synchronizing with overhead lighting based on flight events or changing to a certain color when a passenger is calling for a flight attendant. The Accent Light can be controlled by the crew from the Crew Terminal, by the passenger manually, or programmatically, such as turning off when the screen turns off.
Astrova offers default standard Accent Light configurations that can be further customized. The default configuration allows for up to five static colors for different flight events or purposes:
Color 1 — Weight On Wheels, Preflight
Includes System Ready/Power On, Preflight/Boarding, and Taxi Out
Color 2 — Weight Off Wheels, Inflight
Includes Ascent, Cruise, and Descent
Color 3 — Weight On Wheels, Postflight
Includes Taxi In and Postflight/Deplane
Color 4 — Night option
Can be configured to be a different color during nighttime.
Color 5 — Attendant Call Notification
Can be configured to change to a certain color for when a passenger calls for the flight attendant. This can help the flight attendant locate the passenger more easily.
The interactive does not handle color configurations. For custom color configurations, contact your Panasonic focal.
APIs
Set Accent Light
Provides the ability to turn the accent light on or off on an Astrova monitor.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
command | string | Name of the command. Set this to
setAccentLight. | Yes |
app | string | Name of the application. Set this to
seat_settings. | Yes |
args | object | Additional arguments. | Yes |
args.state | integer | Power on or off. Values:
| Yes |
Example
Set Accent Light Callback
Callback event triggered when setAccentLight is
called and notifies whether accent light is turned on or
off.
The interactive must register for the
ACCENTLIGHT_POWER_SETTING event to get the
value.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
command | string | Name of the command. Set this to
handleEvents. | Yes |
app | string | Name of the application. Set this to
events. | Yes |
args | object | Additional arguments. | Yes |
args.eventId | integer | Unique event identifier. | Yes |
args.name | string | Name of the callback. Set this to
ACCENTLIGHT_POWER_SETTING. | Yes |
args.params | array with integer | Event parameters. Indicates if accent light is turned on or off.
| Yes |
Example
Accent Light State Callback
Callback event that is triggered during initialization and notifies whether the ability to turn the accent light on or off is enabled.
The interactive must register for the
ACCENTLIGHT_STATE_SETTING event to get the
value.
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
command | string | Name of the command. Set this to
handleEvents. | Yes |
app | string | Name of the application. Set this to
events. | Yes |
args | object | Additional arguments. | Yes |
args.eventId | integer | Unique event identifier. | Yes |
args.name | string | Name of the callback. Set this to
ACCENTLIGHT_STATE_SETTING. | Yes |
args.params | array with integer | Event parameters. Indicates if the ability to turn the accent light on or off is enabled.
|
Spatial Audio
Spatial Audio provides an immersive 360° audio experience to complement the 4K Astrova display, engaging passengers as if they were in a movie theater. It supports all media types, such as movies, music, games, and live events, and all headphone types, including both airline- and passenger-provided headphones.
Spatial Audio is available on Astrova by default, but to enable it, the interactive must be running Android 5.1 or higher and media content must be stereo audio encoded.
Software Requirements
The following components are required to enable Spatial Audio:
Android 8 systems
android_s820 — version 0.7.20.0.3 or higher
msm_seatcore_apps — version 05.20.00.02 or higher
xplayer_msm — version 01.109.00.1 or higher
paxus3air_freescale — version 07.12.00.1048153 or higher
pac_io_framework_armv7a9 — version 04.01.0.01
android_pac_apps — version 01.94 or higher
Android 5.1 systems
freescale_seatcore_apps — version 05.20.00.02 or higher
android — version 04.79.0.00 or higher
xPlayer_imx — version 01.109.00.1 or higher
paxus3air_freescale — version 07.12.00.1048153 or higher
pac_io_framework_armv7a9 — version 04.01.0.01
android_pac_apps — version 01.94 or higher
APIs
Enable Spatial Audio
To enable Spatial Audio in Android applications, applications must bind to the SpatialAudio service through ISpatialAudio.aidl.
Example:
package aero.panasonic.spatialaudioservice;
// Declare any non-default types here with import statements
interface ISpatialAudio {
void setSpatialAudioEnabled(in Bundle args);
boolean isSpatialAudioEnabled();
void setSpatialAudioDialogBoostEnabled(in Bundle args);
boolean isSpatialAudioDialogBoostEnabled();
}Arguments for setSpatialAudioEnabled should
include the following parameters:
| Parameter | Type | Description | Required |
|---|---|---|---|
context | string | Context name. | Yes |
correlationId | string | UUID of the application. | Yes |
enabled | short | Determines if spatial audio is enabled or disabled. | Yes |
Example
private val KEY_CONTEXT = "context"
private val KEY_CORRELATION_ID = "correlationId"
private val KEY_ENABLED = "enabled"
private val mConnection =
object : ServiceConnection {
override fun onServiceConnected(className: ComponentName, service: IBinder) {
mService = ISpatialAudio.Stub.asInterface(service)
mBound = true
Log.d(TAG, "Bound to spatial audio service")
getSpatialAudioState()
}
override fun onServiceDisconnected(arg0: ComponentName) {
mBound = false
Log.d(TAG, "Disconnected from spatial audio service")
}
}
fun setSpatialAudioEnabled(enabled: Boolean) {
try {
if (mBound) {
var bundle = Bundle()
bundle.putCharSequence(KEY_CONTEXT, "spatial_audio_test_app")
bundle.putCharSequence(KEY_CORRELATION_ID, mUuid)
val value: Short =
when (enabled) {
true -> 1
false -> 0
}
bundle.putShort(KEY_ENABLED, value)
mService.setSpatialAudioEnabled(bundle)
}
} catch (e: RemoteException) {}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
var intent = Intent()
intent.setClassName(
"aero.panasonic.spatialaudioservice",
"aero.panasonic.spatialaudioservice.SpatialAudioService"
)
bindService(intent, mConnection, Context.BIND_AUTO_CREATE)
}OLED Burn-In and Image Retention Reduction
Astrova OLED technology provides the latest best picture quality and entertainment experience for passengers, including better visibility in different lighting conditions and reduced motion blur. However, compared to LCD monitors, OLED monitors are more susceptible to image retention over time if used under certain, abnormal usage conditions.
Image retention refers to the temporary ghostly appearance of bold static elements on the screen. This artifact disappears over time when the GUI avoids continually displaying the same content that causes the retention, or when OLED recycles itself after the monitor is powered down.
To reduce image retention and burn-in, Panasonic provides the following guidelines, features and procedures:
Astrova GUI Design Standards
This guide is strongly recommended for airlines to follow when creating their own GUIs and applications. Panasonic provides OLED protection in the hardware, but implementing these design standards in the GUI can further reduce the risk of image retention over time.
It is required for all GUIs to turn the screen off after five minutes of inactivity while in the air, enable an “active screensaver” while on the ground if the screen is kept on for longer than ten minutes, and vary map elements in autoplay. In addition, GUIs should minimize static interface elements and use darker backgrounds.
For more information, refer to the Astrova GUI Design Standards guide.
Built-in image retention and burn-in hardware and software
All Astrova OLED panels have built-in adjustment to each pixel on the screen where each pixel area is adjusted to display the same brightness, depending on the recorded data.
An audit team for GUIs and applications
Panasonic has a dedicated UX team to review GUIs and applications that airlines or third parties provide when they design new software. This ensures GUIs and applications are complying with the GUI standards to prolong the life of the OLED panel.
Screensaver mode
Astrova monitors are equipped with screensaver software to help prevent image retention and burn-in. The software also requires the screen brightness to continually decrease and eventually turn the display off when the screen is unused for a period of time.
This feature is part of the CSO standard and cannot be disabled.
OLED Mitigation Service for Automatic Logo Detection
Astrova monitors have static image detection software that detects static images that continuously display for an extended period of time and reduces the brightness of that area to prevent image retention. Examples of static images are broadcast logos or news captions. If the entire screen is a static image, the brightness will reduce for the entire screen.
4K Media and Widevine Integration
All Astrova monitors in full Astrova systems support 4K media playback. In hybrid Astrova sytems, which has an Astrova seat-end and an X series headend and distribution, 4K media cannot be streamed from the headend and must be streamed from the seat-end.
Widevine provisioning is the process of a Widevine device being authenticated by Google to acquire and install a certificate. This is application-specific starting from Android 8.0 and required on all Astrova units, which all come with a unique Widevine keybox that is permanently installed.
Certificate storage is erased every time an Astrova monitor or seat box is newly installed or factory reset. This means the Widevine certificate must be reinstalled whenever this occurs.
For information on supporting Widevine media, refer to the Widevine Player Library Developer Guide.
