A powerful, browser-based audio recorder app designed to capture and save audio directly to Azure Blob Storage.
The Audio Recorder App allows users to record audio, pause/resume recordings, and save audio data in real-time to Azure Blob Storage. It is designed for flexibility and extensibility, making it easy to adapt for web and native platforms like Android and iOS.
- Record audio directly from the browser or Android device
- Pause and resume recordings seamlessly
- Real-time upload of audio chunks to Azure Blob Storage
- Retry logic for resilient uploads
- Cross-platform support (web, Android and iOS)
- Supports
.webm
and.mp4
formats - Designed for integration into larger systems or standalone use
-
Node.js (v16 or higher) and npm installed.
-
Android Studio (for Android builds).
-
Azure Storage account with configured CORS rules.
-
Capacitor CLI installed globally:
npm install -g @capacitor/cli
-
Clone the repository:
git clone https://github.com/your-username/audio-recorder-app.git
cd audio-recorder-app
-
Install dependencies:
npm install
-
Configure environment variables:
- Create a
.env
file in the project root. - Add the following:
VITE_AZURE_BLOB_SAS_URL=<Your Azure Blob SAS URL>
-
Start the development server:
npm run dev
-
Open the app in your browser:
http://localhost:5173
-
Build the production version:
npm run build
-
The built assets will be in the
dist
folder.
-
Add the Android platform (if not already added):
npx cap add android
-
Sync the project:
npm run build
npx cap copy
npx cap sync android
-
Open the Android project in Android Studio:
npx cap open android
-
Build the APK:
- In Android Studio, go to Build > Build Bundle(s)/APK(s) > Build APK(s).
- Locate the APK in
android/app/build/outputs/apk/debug/
-
Share and install the APK on your Android device.
Contributions are welcome! To contribute:
-
Fork the repository.
-
Create a new branch for your feature/bugfix:
git checkout -b feature/your-feature-name
-
Commit your changes and push to your forked repository.
-
Open a pull request to the main repository.
This project is licensed under the MIT License. See the LICENSE file for details.