JSPM

expo-media-library

17.1.0-canary-20250402-161f57b
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 199913
  • Score
    100M100P100Q174993F
  • License MIT

Provides access to user's media library.

Package Exports

  • expo-media-library
  • expo-media-library/build/MediaLibrary.js
  • expo-media-library/package.json

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (expo-media-library) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

expo-media-library

Provides access to user's media library.

API documentation

Installation in managed Expo projects

For managed Expo projects, please follow the installation instructions in the API documentation for the latest stable release.

Installation in bare React Native projects

For bare React Native projects, you must ensure that you have installed and configured the expo package before continuing.

Add the package to your npm dependencies

npx expo install expo-media-library

Configure for Android

This package automatically adds the READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions. They are used when accessing the user's images or videos.

<!-- Added permissions -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

If you'd like to access asset location (latitude and longitude EXIF tags), you have to add ACCESS_MEDIA_LOCATION permission to the AndroidManifest.xml:

<!-- Add this to AndroidManifest.xml -->
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />

Starting with Android 10, the concept of scoped storage is introduced. Currently, to make expo-media-library working with that change, you have to add android:requestLegacyExternalStorage="true" to AndroidManifest.xml:

<manifest ... >
  <application android:requestLegacyExternalStorage="true" ... >
    ...
  </application>
</manifest>

Configure for iOS

Add NSPhotoLibraryUsageDescription, and NSPhotoLibraryAddUsageDescription keys to your Info.plist:

<key>NSPhotoLibraryUsageDescription</key>
<string>Give $(PRODUCT_NAME) permission to access your photos</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Give $(PRODUCT_NAME) permission to save photos</string>

Run npx pod-install after installing the npm package.

Contributing

Contributions are very welcome! Please refer to guidelines described in the contributing guide.