Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/media/tv/TvView.TimeShiftPositionCallback#pubctors) \| [Methods](https://developer.android.com/reference/android/media/tv/TvView.TimeShiftPositionCallback#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/tv/TvView.TimeShiftPositionCallback#inhmethods)

# TvView.TimeShiftPositionCallback

*** ** * ** ***

` public static abstract class TvView.TimeShiftPositionCallback `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.tv.TvView.TimeShiftPositionCallback |

<br />

*** ** * ** ***

Callback used to receive time shift position changes.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/media/tv/TvView.TimeShiftPositionCallback#TimeShiftPositionCallback()() ` |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/media/tv/TvView.TimeShiftPositionCallback#onTimeShiftCurrentPositionChanged(java.lang.String,%20long)(https://developer.android.com/reference/java/lang/String inputId, long timeMs) ` This is called when the current position for time shifting has changed. |
| ` void` | ` https://developer.android.com/reference/android/media/tv/TvView.TimeShiftPositionCallback#onTimeShiftStartPositionChanged(java.lang.String,%20long)(https://developer.android.com/reference/java/lang/String inputId, long timeMs) ` This is called when the start position for time shifting has changed. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public constructors

### TimeShiftPositionCallback

```
public TimeShiftPositionCallback ()
```

<br />

<br />

## Public methods

### onTimeShiftCurrentPositionChanged

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onTimeShiftCurrentPositionChanged (String inputId, 
                long timeMs)
```

This is called when the current position for time shifting has changed.

The current position for time shifting is the same as the current position of playback. During playback, the current position changes continuously. When paused, it does not change.

Note that `timeMs` is wall-clock time.

<br />

| Parameters ||
|---|---|
| `inputId` | `String`: The ID of the TV input bound to this view. <br /> |
| `timeMs` | `long`: The current position for time shifting, in milliseconds since the epoch. <br /> |

### onTimeShiftStartPositionChanged

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onTimeShiftStartPositionChanged (String inputId, 
                long timeMs)
```

This is called when the start position for time shifting has changed.

The start position for time shifting indicates the earliest possible time the user can seek to. Initially this is equivalent to the time when the underlying TV input starts recording. Later it may be adjusted because there is insufficient space or the duration of recording is limited. The application must not allow the user to seek to a position earlier than the start position.

For playback of a recorded program initiated by `https://developer.android.com/reference/android/media/tv/TvView#timeShiftPlay(java.lang.String,%20android.net.Uri)`, the start position is the time when playback starts. It does not change.

<br />

| Parameters ||
|---|---|
| `inputId` | `String`: The ID of the TV input bound to this view. <br /> |
| `timeMs` | `long`: The start position for time shifting, in milliseconds since the epoch. <br /> |