Vigia

expo-audio을(를) 57.x에서 58.x로 업그레이드하기

expo-audio 57.0.5과 58.0.9의 공개 API를 TypeScript 타입에서 자동으로 비교한 결과입니다. 시그니처 변경은 호환성이 깨질 가능성이 있다는 뜻이며 확정은 아닙니다.

요약

삭제된 import 경로0
삭제된 export0
변경된 시그니처7
삭제된 클래스·인터페이스 멤버0
변경된 클래스·인터페이스 멤버1
새로 지원 중단됨0
요구 사항 변경 (engines, peer 의존성)0
새 export2

삭제된 export

감지되지 않았습니다.

변경된 시그니처

export이전이후
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"

삭제된 클래스·인터페이스 멤버

감지되지 않았습니다.

변경된 클래스·인터페이스 멤버

member이전이후
AudioPlayer.constructor(source: AudioSource, updateInterval: number, keepAudioSessionActive: boolean, preferredForwardBufferDuration: number): AudioPlayer(source: AudioSource, updateInterval: number, keepAudioSessionActive: boolean, preferredForwardBufferDuration: number, allowsExternalPlayback: boolean): AudioPlayer

새로 지원 중단됨

감지되지 않았습니다.

요구 사항 변경 (engines, peer 의존성)

감지되지 않았습니다.

새 export (2)
importexportkind
expo-audioAudioStreamFileRecordingResulttype
expo-audioAudioStreamFileRecordingOptionstype

두 버전 사이의 changelog

패키지 작성자가 공개한 텍스트를 그대로 표시합니다.

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. 

이 데이터를 AI 에이전트에 제공하세요

Vigia는 무료 MCP 서버입니다. 코딩 에이전트가 코드를 작성하기 전에 버전, 호환성을 깨는 변경, 취약점을 확인합니다. 가입도 API 키도 필요 없습니다.

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

Cursor에 추가VS Code에 추가★ GitHub에서 스타 누르기

그 밖의 MCP 클라이언트
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }

에이전트 스킬(SKILL.md): 에이전트에게 Vigia를 언제 쓸지 알려 줍니다 · 풀 리퀘스트용 GitHub Action

자주 묻는 질문

expo-audio을(를) 57에서 58(으)로 업그레이드할 때 호환성이 깨지는 변경은 무엇인가요?

expo-audio 57.0.5과 58.0.9 사이에서 Vigia는 삭제된 export 0개, 변경된 시그니처 7개, 삭제되거나 변경된 클래스·인터페이스 멤버 1개를 찾았습니다.

expo-audio 58에서 지원 중단된 것은 무엇인가요?

expo-audio 58.0.9에서 export 또는 멤버 0개가 새로 지원 중단으로 표시되었습니다.

에이전트용

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