tunzo-player
v1.0.45
Published
A music playback service for Angular and Ionic apps with native audio control support.
Maintainers
Readme
Tunzo Player 🎵
Built for the Tunzo Music App — now available as a reusable npm package
A feature-rich audio playback utility for Angular + Ionic applications
✨ Features
| Category | Features | |----------------|--------------------------------------------------------------------------| | Playback | Queue management, Shuffle, Repeat, Crossfade | | Quality | Dynamic stream quality (12kbps to 320kbps) | | UI | Dark/Light theme support with auto-detection | | Storage | Firestore & localStorage integration for favorites | | Modular | Reusable service classes with clean API |
💻 Basic Usage
import {
TunzoPlayer,
StreamSettings,
ThemeManager,
Favorites,
TunzoPlayerAPI
} from '/tunzo-player';
// Initialize components
const player = new TunzoPlayer();
const api = new TunzoPlayerAPI();
// Example workflow
async function playMusic() {
// Search songs
const results = await api.searchSongs('popular songs');
// Play first result
player.playSong(results[0]);
// Like the song
Favorites.like(results[0]);
// Set quality to High
StreamSettings.setQuality(3);
// Enable dark mode
ThemeManager.toggleDarkMode(true);
}🚀 Installation
npm i tunzo-player
# or
yarn add tunzo-player🎚️ Stream Quality Options
| Value | Label | | ----- | ----------------- | | 0 | Very Low (12kbps) | | 1 | Low (48kbps) | | 2 | Medium (96kbps) | | 3 | High (160kbps) | | 4 | Ultra (320kbps) |
📱 Native Configuration (Ionic/Capacitor)
To ensure background audio works correctly on Android and iOS, you need to install the KeepAwake plugin in your main app.
Installation
npm install @capacitor-community/keep-awake
npx cap syncAndroid (android/app/src/main/AndroidManifest.xml)
Add the following permissions inside the <manifest> tag:
<uses-permission android:name="android.permission.WAKE_LOCK" />iOS (ios/App/App/Info.plist)
Add audio to the UIBackgroundModes key to allow background playback:
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>Note: The player uses HTML5 Audio with MediaSession API for lock screen controls. This works with MP4/AAC audio streams (like JioSaavn) on both Android and iOS.
🤝 Contributing
Contributions are welcome! Please open an issue or submit a pull request.
