Measuring video just got easier. With AIR 2.7 and Adobe® SiteCatalyst®, developers can now implement video analytics with as little as two lines of code. Other analytics solution providers can also use the new open APIs to easily implement a consistent video tracking mechanism irrespective of their implementation and/or the type of delivery protocol. Media Measurement for AIR and Flash Player allows companies to get a clear picture of how content is distributed, what the audience reach is, and how much of the media is played.
Specifically, AIR 2.7 introduces new events and properties that enable companies to capture the state of a particular video regardless of delivery protocols or how NetStream objects are handled. You will also be able to retrieve the Page Domain URL via a static method.
The modifications are grouped into the following four areas:
- Enhanced Playback Events
- NetStream Monitoring
- Enhanced NetStreamInfo
- Page Domain URL
The new APIs require SWF version 12 or higher. Make sure that you publish your movie to SWF 12 and you must also configure your authoring environment with the new playerglobal.swc.
Enhanced Playback Events
The purpose of enhanced playback events is to dispatch the same events regardless of the delivery mechanism used for video playback (progressive download, RTMP streaming or newly added HTTP streaming). Previously, progressive download did not trigger all the NetStream playback events triggered by RTMP streaming. Such was the case for NetStream.Play.Complete, NetStream.Pause.Notify and NetStream.UnpauseNotify events.
Now, for progressive playback, Flash Player 10.3 dispatches NetStream.Pause.Notify, NetStream.Unpause.Notify and NetStream.Play.Complete.
In addition, we have added NetStream.SeekStart.Notify for progressive, RTMP streaming and HTTP streaming. The event is always dispatched by Flash Player when seek started. The info object contains the description string "Start Seeking seek_time". NetStream.SeekStart.Notify always precedes NetStream.Seek.Notify.
NetStream Monitoring
We have added a new NetMonitor class. This class has two functionalities. It contains a single method listStreams(), that returns the vector of NetStream objects. Secondly, the NetMonitor class dispatches NetMonitorEvent of the netStreamCreate type whenever a new NetStream object is created.
A typical usage scenario is: