Getting Started
Learn how to set up and use React Native Music Library in your project.
Installation
npm install @nodefinity/react-native-music-library
# or
yarn add @nodefinity/react-native-music-library
Platform Setup
Android
- Add permissions to
android/app/src/main/AndroidManifest.xml
:
<!-- Android 13+ granular permission -->
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<!-- Android 12 and below traditional storage permission -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- Request runtime permissions using a permissions library:
import { request, PERMISSIONS, RESULTS } from 'react-native-permissions';
const requestMusicPermission = async () => {
const result = await request(PERMISSIONS.ANDROID.READ_MEDIA_AUDIO);
if (result === RESULTS.GRANTED) {
console.log('Music permission granted');
} else {
console.log('Music permission denied');
}
};
iOS (Coming Soon)
iOS implementation is not yet available. For future compatibility, add to Info.plist
:
<key>NSAppleMusicUsageDescription</key>
<string>This app needs access to your music library to play songs</string>
Basic Usage
Import the library
import {
getTracksAsync,
getAlbumsAsync,
getArtistsAsync,
getTrackMetadataAsync
} from '@nodefinity/react-native-music-library';
Get all tracks
const loadTracks = async () => {
try {
const result = await getTracksAsync();
result.items.forEach(track => {
console.log(`${track.title} by ${track.artist}`);
console.log(`Duration: ${Math.floor(track.duration / 60)}:${track.duration % 60}`);
console.log(`File: ${track.url}`);
});
} catch (error) {
console.error('Failed to load tracks:', error);
}
};
Get albums
const loadAlbums = async () => {
try {
const result = await getAlbumsAsync({
sortBy: ['title', true], // Sort by title ascending
first: 50
});
result.items.forEach(album => {
console.log(`${album.title} by ${album.artist}`);
console.log(`Tracks: ${album.trackCount}`);
});
} catch (error) {
console.error('Failed to load albums:', error);
}
};
Get artists
const loadArtists = async () => {
try {
const result = await getArtistsAsync({
sortBy: 'title' // Sort by name
});
result.items.forEach(artist => {
console.log(`${artist.title}`);
console.log(`Albums: ${artist.albumCount}, Tracks: ${artist.trackCount}`);
});
} catch (error) {
console.error('Failed to load artists:', error);
}
};
Next Steps
- API Reference - Learn about all available methods and options
- Examples - See practical usage examples
- Type Definitions - Understand the data structures