Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.

AudioTimestamp

public final class AudioTimestamp
extends Object

java.lang.Object
   ↳ android.media.AudioTimestamp


Structure that groups a position in frame units relative to an assumed audio stream, together with the estimated time when that frame enters or leaves the audio processing pipeline on that device. This can be used to coordinate events and interactions with the external environment.

The time is based on the implementation's best effort, using whatever knowledge is available to the system, but cannot account for any delay unknown to the implementation.

Summary

Constants

int TIMEBASE_BOOTTIME

Clock monotonic including suspend time or its equivalent on the system, in the same units and timebase as SystemClock.elapsedRealtimeNanos().

int TIMEBASE_MONOTONIC

Clock monotonic or its equivalent on the system, in the same units and timebase as System.nanoTime().

Fields

public long framePosition

Position in frames relative to start of an assumed audio stream.

public long nanoTime

Time associated with the frame in the audio pipeline.

Public constructors

AudioTimestamp()

Inherited methods

Constants

TIMEBASE_BOOTTIME

added in API level 24
public static final int TIMEBASE_BOOTTIME

Clock monotonic including suspend time or its equivalent on the system, in the same units and timebase as SystemClock.elapsedRealtimeNanos().

Constant Value: 1 (0x00000001)

TIMEBASE_MONOTONIC

added in API level 24
public static final int TIMEBASE_MONOTONIC

Clock monotonic or its equivalent on the system, in the same units and timebase as System.nanoTime().

Constant Value: 0 (0x00000000)

Fields

framePosition

added in API level 19
public long framePosition

Position in frames relative to start of an assumed audio stream.

When obtained through AudioRecord.getTimestamp(AudioTimestamp, int), all 64 bits of position are valid.

When obtained through AudioTrack.getTimestamp(AudioTimestamp), the low-order 32 bits of position is in wrapping frame units similar to AudioTrack.getPlaybackHeadPosition().

nanoTime

added in API level 19
public long nanoTime

Time associated with the frame in the audio pipeline.

When obtained through AudioRecord.getTimestamp(AudioTimestamp, int), this is the estimated time in nanoseconds when the frame referred to by framePosition was captured. The timebase is either TIMEBASE_MONOTONIC or TIMEBASE_BOOTTIME, depending on the timebase parameter used in AudioRecord.getTimestamp(AudioTimestamp, int).

When obtained through AudioTrack.getTimestamp(AudioTimestamp), this is the estimated time when the frame was presented or is committed to be presented, with a timebase of TIMEBASE_MONOTONIC.

Public constructors

AudioTimestamp

added in API level 19
public AudioTimestamp ()