You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
npm install @odion-cloud/capacitor-mediastore
npx cap sync android
Basic JavaScript Usage
// Import the pluginimport{CapacitorMediaStore}from'@odion-cloud/capacitor-mediastore';// Request permissions firstasyncfunctionsetupPermissions(){try{constpermissions=awaitCapacitorMediaStore.requestPermissions();console.log('Permissions granted:',permissions);returnpermissions;}catch(error){console.error('Permission error:',error);returnnull;}}// Get all audio files including from SD cardasyncfunctionloadAllSongs(){try{constresult=awaitCapacitorMediaStore.getMediasByType({mediaType: 'audio',sortBy: 'TITLE',sortOrder: 'ASC',includeExternal: true,// Critical for SD card accesslimit: 1000});console.log('Total songs found:',result.totalCount);console.log('Songs loaded:',result.media.length);// Filter SD card songsconstsdCardSongs=result.media.filter(song=>song.isExternal);console.log('SD card songs:',sdCardSongs.length);returnresult.media;}catch(error){console.error('Error loading songs:',error);return[];}}// Get all music albumsasyncfunctionloadAlbums(){try{constresult=awaitCapacitorMediaStore.getAlbums();console.log('Albums found:',result.albums.length);returnresult.albums;}catch(error){console.error('Error loading albums:',error);return[];}}// Get detailed metadata for a specific songasyncfunctiongetSongMetadata(songUri){try{constresult=awaitCapacitorMediaStore.getMediaMetadata({filePath: songUri});constmetadata=result.media;console.log('Song metadata:',{title: metadata.title,artist: metadata.artist,album: metadata.album,duration: metadata.duration,bitrate: metadata.bitrate,genre: metadata.genre});returnmetadata;}catch(error){console.error('Error getting metadata:',error);returnnull;}}// Search songs by artistasyncfunctionsearchByArtist(artistName){try{constresult=awaitCapacitorMediaStore.getMediasByType({mediaType: 'audio',artistName: artistName,includeExternal: true});returnresult.media;}catch(error){console.error('Error searching by artist:',error);return[];}}// Get songs from specific albumasyncfunctiongetSongsFromAlbum(albumName){try{constresult=awaitCapacitorMediaStore.getMediasByType({mediaType: 'audio',albumName: albumName,includeExternal: true});returnresult.media;}catch(error){console.error('Error getting album songs:',error);return[];}}
// build-music-library.jsconst{ CapacitorMediaStore }=require('@odion-cloud/capacitor-mediastore');asyncfunctionbuildMusicLibrary(){try{console.log('Building music library...');// Request permissionsawaitCapacitorMediaStore.requestPermissions();// Get all audio filesconstsongs=awaitCapacitorMediaStore.getMediasByType({mediaType: 'audio',includeExternal: true,sortBy: 'ARTIST'});// Get all albumsconstalbums=awaitCapacitorMediaStore.getAlbums();// Process and save to JSONconstmusicLibrary={songs: songs.media.map(song=>({id: song.id,title: song.title||song.displayName,artist: song.artist||'Unknown Artist',album: song.album||'Unknown Album',duration: song.duration,uri: song.uri,isExternal: song.isExternal})),albums: albums.albums,stats: {totalSongs: songs.totalCount,totalAlbums: albums.totalCount,sdCardSongs: songs.media.filter(s=>s.isExternal).length}};console.log('Music library built:',musicLibrary.stats);returnmusicLibrary;}catch(error){console.error('Error building music library:',error);}}module.exports={ buildMusicLibrary };