Vigia

Passer de expo-audio 57.x à 58.x

Comparaison de l’API publique de expo-audio 57.0.5 et 58.0.9, calculée automatiquement à partir de leurs types TypeScript. Une signature modifiée est un changement incompatible possible, pas une certitude.

Résumé

Chemins d’importation supprimés0
Exports supprimés0
Signatures modifiées7
Membres de classes ou d’interfaces supprimés0
Membres de classes ou d’interfaces modifiés1
Nouvelles dépréciations0
Changements d’exigences (engines, dépendances peer)0
Nouveaux exports2

Exports supprimés

Aucun détecté.

Signatures modifiées

exportAvantAprès
expo-audio · RecorderState{ canRecord: boolean; isRecording: boolean; durationMillis: number; mediaServicesDidReset: boolean; metering?: number | undefined; url: string | null; }{ canRecord: boolean; isRecording: boolean; durationMillis: number; fileSize: number; mediaServicesDidReset: boolean; metering?: number | undefined; url: string | null; }
expo-audio · AudioLoadOptions{ updateInterval?: number | undefined; downloadFirst?: boolean | undefined; crossOrigin?: "anonymous" | "use-credentials" | undefined; keepAudioSessionActive?: boolean | undefined; preferredForwardBufferDuration?: number | undefined; }{ updateInterval?: number | undefined; downloadFirst?: boolean | undefined; crossOrigin?: "anonymous" | "use-credentials" | undefined; keepAudioSessionActive?: boolean | undefined; preferredForwardBufferDuration?: number | undefined; allowsExternalPlayback?: boolean | undefined; }
expo-audio · InterruptionMode"mixWithOthers" | "doNotMix" | "duckOthers""mixWithOthers" | "doNotMix" | "doNotMixPersistent" | "duckOthers"
expo-audio · RecordingOptions{ directory?: RecordingDirectory | undefined; isMeteringEnabled?: boolean | undefined; extension: string; sampleRate: number; numberOfChannels: number; bitRate: number; android: RecordingOptionsAndroid; ios: RecordingOptionsIos; web: RecordingOptionsWeb; }{ directory?: RecordingDirectory | undefined; fileName?: string | undefined; isMeteringEnabled?: boolean | undefined; extension: string; sampleRate: number; numberOfChannels: number; bitRate: number; android: RecordingOptionsAndroid; ios: RecordingOptionsIos; web: RecordingOptionsWeb; }
expo-audio · AudioPlayerOptions{ updateInterval?: number | undefined; downloadFirst?: boolean | undefined; crossOrigin?: "anonymous" | "use-credentials" | undefined; keepAudioSessionActive?: boolean | undefined; preferredForwardBufferDuration?: number | undefined; }{ updateInterval?: number | undefined; downloadFirst?: boolean | undefined; crossOrigin?: "anonymous" | "use-credentials" | undefined; keepAudioSessionActive?: boolean | undefined; preferredForwardBufferDuration?: number | undefined; allowsExternalPlayback?: boolean | undefined; }
expo-audio · AudioLockScreenOptions{ showSeekForward?: boolean | undefined; showSeekBackward?: boolean | undefined; isLiveStream?: boolean | undefined; }{ showSeekForward?: boolean | undefined; showSeekBackward?: boolean | undefined; showNextTrack?: boolean | undefined; showPreviousTrack?: boolean | undefined; isLiveStream?: boolean | undefined; }
expo-audio · InterruptionModeAndroid"mixWithOthers" | "doNotMix" | "duckOthers""mixWithOthers" | "doNotMix" | "doNotMixPersistent" | "duckOthers"

Membres de classes ou d’interfaces supprimés

Aucun détecté.

Membres de classes ou d’interfaces modifiés

memberAvantAprès
AudioPlayer.constructor(source: AudioSource, updateInterval: number, keepAudioSessionActive: boolean, preferredForwardBufferDuration: number): AudioPlayer(source: AudioSource, updateInterval: number, keepAudioSessionActive: boolean, preferredForwardBufferDuration: number, allowsExternalPlayback: boolean): AudioPlayer

Nouvelles dépréciations

Aucun détecté.

Changements d’exigences (engines, dépendances peer)

Aucun détecté.

Nouveaux exports (2)
importexportkind
expo-audioAudioStreamFileRecordingResulttype
expo-audioAudioStreamFileRecordingOptionstype

Changelog entre ces versions

Texte publié par les auteurs du paquet, affiché tel quel.

58.0.9
### Patch Changes

- [iOS] Re-apply `preferredForwardBufferDuration` when the player item is replaced or a loop item is queued. ([#50468](https://github.com/expo/expo/pull/50468) by [@rmotafreitas](https://github.com/rmotafreitas))
58.0.8
### Patch Changes

- [Android] Request audio focus when playback is started from the notification, the lock screen or a media button, so it pauses for an incoming call like playback started from JS. ([#50745](https://github.com/expo/expo/pull/50745) by [@enavermate](https://github.com/enavermate))
58.0.7
### Patch Changes

- [iOS] Fix `currentDate` call in `replace()` freezing the app for up to several seconds while the new source loads. ([#50724](https://github.com/expo/expo/pull/50724) by [@tomKFM](https://github.com/tomKFM))
58.0.6
### Patch Changes

- [iOS][Android] Fixed recorders that the user paused starting to record again when the app returned to the foreground. On iOS, this also happened to recorders that were only prepared, and when an audio interruption ended. Now only recordings that the system paused are resumed. ([#51048](https://github.com/expo/expo/pull/51048) by [@alanjhughes](https://github.com/alanjhughes))
58.0.5
### Patch Changes

- [Android] Fixed `prepareToRecordAsync` rejecting when `allowsBackgroundRecording` is `true` and the notification permission is not granted ([#50705](https://github.com/expo/expo/issues/50705)). ([#50968](https://github.com/expo/expo/pull/50968) by [@alanjhughes](https://github.com/alanjhughes))
- [Web] Fixed an uncaught promise rejection, and `playing` staying `true`, when the browser blocks playback before the user interacts with the page. The player now reports the rejection in `error` on its status ([#36264](https://github.com/expo/expo/issues/36264)). ([#50972](https://github.com/expo/expo/pull/50972) by [@alanjhughes](https://github.com/alanjhughes))
- [Android] Fix `prepareToRecordAsync()` hanging forever when background recording is enabled and the recording service never connects. The binding timeout is now started, and the promise also rejects when the React context is lost. ([#50883](https://github.com/expo/expo/pull/50883) by [@Cedric921](https://github.com/Cedric921))
58.0.4
### Patch Changes

- Bump precompiled artifacts due to ABI breakage in expo-modules-jsi@58.0.6. ([#50881](https://github.com/expo/expo/pull/50881) by [@kitten](https://github.com/kitten))
58.0.3
### Patch Changes

- Force-bump all packages, due to migration to changesets. ([#50762](https://github.com/expo/expo/pull/50762) by [@kitten](https://github.com/kitten))
58.0.2
### 🐛 Bug fixes

- [Android] Fixed `AudioStream` buffer events including unrecorded trailing bytes after a short read. ([#50327](https://github.com/expo/expo/pull/50327) by [@alanjhughes](https://github.com/alanjhughes))
58.0.1
_This version does not introduce any user-facing changes._
58.0.0
### 🛠 Breaking changes

- Paused time is now excluded from the `AudioRecorder` duration limit. ([#49239](https://github.com/expo/expo/pull/49239) by [@stvrmrz](https://github.com/stvrmrz) and [@behenate](https://github.com/behenate))
- [Android] Aligned the default audio focus request on Android 7.0–7.1 with newer versions by using transient exclusive focus when no interruption mode has been configured. ([#49101](https://github.com/expo/expo/pull/49101) by [@behenate](https://github.com/behenate))

### 🎉 New features

- [Android] Added support for `keepAudioSessionActive`. ([#49108](https://github.com/expo/expo/pull/49108) by [@behenate](https://github.com/behenate))
- Added the `doNotMixPersistent` interruption mode. ([#49101](https://github.com/expo/expo/pull/49101) by [@behenate](https://github.com/behenate))
- Added `fileName` option to `RecordingOptions` to allow specifying the recording file basename on Android and iOS. ([#47265](https://github.com/expo/expo/pull/47265) by [@silwalprabin](https://github.com/silwalprabin))
- Support lockscreen controls with playlists. ([#46020](https://github.com/expo/expo/pull/46020) by [@alanjhughes](https://github.com/alanjhughes))
- Added a `fileSize` field to `RecorderState` reporting the current size of the recording file in bytes. ([#46808](https://github.com/expo/expo/pull/46808) by [@behenate](https://github.com/behenate))
- Added `startFileRecordingAsync` and `stopFileRecordingAsync` methods to `AudioStream` for continuous WAV and PCM file recording alongside buffer streaming. ([#46771](https://github.com/expo/expo/pull/46771) by [@behenate](https://github.com/behenate))
- [iOS] Added `allowsExternalPlayback` option to `AudioPlayerOptions`. Set to `false` to keep the local player in control during AirPlay, fixing `player.loop` not firing. ([#48366](https://github.com/expo/expo/pull/48366) by [@zoontek](https://github.com/zoontek))

### 🐛 Bug fixes

- Preserve recorder duration limits across pauses, consistently exclude paused time on Android, iOS, and Web. ([#49239](https://github.com/expo/expo/pull/49239) by [@stvrmrz](https://github.com/stvrmrz) and [@behenate](https://github.com/behenate))
- [Android] Pause audio players and playlists when headphones or Bluetooth audio devices disconnect. ([#48151](https://github.com/expo/expo/pull/48151) by [@vivekjm](https://github.com/vivekjm))
- [Android] Give the lock-screen `MediaSession` instances a unique ID so concurrent active players (and the basic session) no longer collide on the empty default. ([#47101](https://github.com/expo/expo/issues/47101) by [@tsushanth](https://github.com/tsushanth))
- [Android] Fix stale lock screen artwork when updating metadata without an `artworkUrl`. ([#45738](https://github.com/expo/expo/pull/45738) by [@behenate](https://github.com/behenate))
- [Android] Don't start playback when the system denies audio focus, and log a warning explaining that background playback needs an active media playback foreground service. 

Donnez ces données à votre agent IA

Vigia est un serveur MCP gratuit : votre agent de code vérifie les versions, les changements incompatibles et les vulnérabilités avant d'écrire du code. Sans inscription ni clé d'API.

claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp

Ajouter à CursorAjouter à VS Code★ Étoile sur GitHub

Tout autre client MCP
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

Skill pour agents (SKILL.md) : indique à l'agent quand utiliser Vigia · GitHub Action pour les pull requests

Questions fréquentes

Quels sont les changements incompatibles en passant de expo-audio 57 à 58 ?

Entre expo-audio 57.0.5 et 58.0.9, Vigia a trouvé 0 exports supprimés, 7 signatures modifiées et 1 membres de classes ou d’interfaces supprimés ou modifiés.

Qu’est-ce qui a été déprécié dans expo-audio 58 ?

0 exports ou membres sont désormais marqués comme dépréciés dans expo-audio 58.0.9.

Pour les agents

GET https://vigia.coredls.cloud/v1/packages/npm/expo-audio/upgrade?from=57.0.5&to=58.0.9