## Summary
expo-audio
does not expose
MPNowPlayingInfoPropertyIsLiveStream
, which means
live radio and streaming apps cannot show the native iOS
LIVE
indicator on
the lock screen and Control Center. Instead, iOS renders a broken scrubber with
no duration, which is incorrect UX for live streams.
## Environment
  • Expo SDK: 55
  • expo-audio
    : ~55.0.8
  • Platform: iOS
  • Use case: Live radio stream (no duration / infinite stream)
## Expected behavior
When playing a live stream, the lock screen and Control Center should show:
  • A
    LIVE
    badge instead of a progress scrubber
  • No elapsed time or duration display
  • This is the standard iOS behavior for any app streaming live audio (Apple
Podcasts, Spotify, RadioApp, etc.)
## Actual behavior
  • Lock screen shows a scrubber with no duration (stuck at 0 or broken)
  • No LIVE indicator is shown
  • There is no API in
    expo-audio
    to signal to iOS that the stream is live
## Requested API
Add an
isLiveStream
boolean field to
updateLockScreenMetadata
(or equivalent):
```ts
AudioPlayer.updateLockScreenMetadata({
title: "Station Name",
artist: "Live Radio",
isLiveStream: true, // new field
});
On the native iOS side this should map to:
```swift
nowPlayingInfo[MPNowPlayingInfoPropertyIsLiveStream] = true
// Also clear duration and elapsed time for correctness:
nowPlayingInfo.removeValue(forKey: MPMediaItemPropertyPlaybackDuration)
nowPlayingInfo.removeValue(forKey: MPNowPlayingInfoPropertyElapsedPlaybackTime)
MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo
## Workaround
There is currently no workaround within
expo-audio
. Achieving this requires
either a native module or dropping down to
react-native-track-player
which
supports
isLiveStream
out of the box.
## References