# SyncFenceWrapper

Artifact: [androidx.media3:media3-common](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/common/video/SyncFenceWrapper.java+class:androidx.media3.common.video.SyncFenceWrapper)

*** ** * ** ***


```
@ExperimentalApi
public class SyncFenceWrapper
```

<br />

*** ** * ** ***

A wrapper for `https://developer.android.com/reference/android/hardware/SyncFence.html` that exists on all API levels.

## Summary

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/android/hardware/SyncFence.html` | `@https://developer.android.com/reference/androidx/annotation/RequiresApi(value = 33) https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper#asSyncFence()()` Returns the wrapped `https://developer.android.com/reference/android/hardware/SyncFence.html`. |
| `boolean` | `@https://developer.android.com/reference/androidx/annotation/RequiresApi(value = 26) https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper#await(java.time.Duration)(https://developer.android.com/reference/java/time/Duration.html timeout)` Waits for the fence to signal. |
| `void` | `https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper#awaitForever()()` Waits forever for the fence to signal. |
| `boolean` | `https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper#awaitMs(long)(long timeoutMs)` Waits for the fence to signal. |
| `void` | `https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper#close()()` Closes the fence. |
| `static https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper` | `@https://developer.android.com/reference/androidx/annotation/RequiresApi(value = 33) https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper#of(android.hardware.SyncFence)(https://developer.android.com/reference/android/hardware/SyncFence.html syncFence)` Returns a `https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper` that wraps the given `syncFence`. |

## Public methods

### asSyncFence

```
@RequiresApi(value = 33)
public SyncFence asSyncFence()
```

Returns the wrapped `https://developer.android.com/reference/android/hardware/SyncFence.html`.

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalStateException.html` | if called on API level \<33. |

### await

```
@RequiresApi(value = 26)
public boolean await(Duration timeout)
```

Waits for the fence to signal.

### awaitForever

```
public void awaitForever()
```

Waits forever for the fence to signal.

### awaitMs

```
public boolean awaitMs(long timeoutMs)
```

Waits for the fence to signal.

### close

```
public void close()
```

Closes the fence.

### of

```
@RequiresApi(value = 33)
public static SyncFenceWrapper of(SyncFence syncFence)
```

Returns a `https://developer.android.com/reference/androidx/media3/common/video/SyncFenceWrapper` that wraps the given `syncFence`.