0.0.5 • Published 4 years ago

ng-audio-recorder v0.0.5

Weekly downloads
48
License
MIT
Repository
github
Last release
4 years ago

NgAudioRecorder

Audio Recorder Service for Angular2+ Applications

Features

  • Uses Media Recorder API
  • Supports pause & resume
  • 1KB minified and gzipped
  • Exports as WEBM audio Blob or WEBM audio blob URL

Installation

To add the Audio recorder to your Angular project:

npm i ng-audio-recorder

Once installed, add the Progressive Loader to your app.module.ts:

import { NgAudioRecorderModule } from 'ng-audio-recorder';

...

@NgModule({
   ...
   imports: [
     ...
     NgAudioRecorderModule,
    ...
   ],
   ...
});
export class AppModule {}

Sample usage

Now you can use the Progressive loader component in your app components, for example in app.component.ts:

import { NgAudioRecorderService, OutputFormat } from 'ng-audio-recorder';
...

@Component({...})
export class AppComponent {

    constructor(private audioRecorderService: NgAudioRecorderService) {
    
        this.audioRecorderService.recorderError.subscribe(recorderErrorCase => {
            // Handle Error
        })
    }
    
    startRecording() {
        this.audioRecorderService.startRecording();
    }
    
    stopRecording() {
         this.audioRecorderService.stopRecording(outputFormat).then((output) => {
            // do post output steps
         }).catch(errrorCase => {
             // Handle Error
         });
    }
}

Output Formats

NameDescription
OutputFormat.WEBM_BLOBWebm Blob for the recorded audio
OutputFormat.WEBM_BLOB_URLWebm Blob URL for the recorded audio

Error Cases

NameDescription
ErrorCase.USER_CONSENT_FAILEDIf user denies audio access or if the website is accessed on http instead of https
ErrorCase.ALREADY_RECORDINGIf you call start recording and state is RECORDING

Audio Recorder State

NameDescription
RecorderState.INITIALIZINGState before calling mediarecorder record API and user consent
RecorderState.INITIALIZEDOn user consent successful
RecorderState.RECORDINGWhen Recording is in progress
RecorderState.PAUSEDOn pausing the recording
RecorderState.STOPPINGAfter calling stopped and before promise return
RecorderState.STOPPEDOn successful stop of media recorder

Methods

NameInput TypeReturn TypeDescription
startRecording--Gets the consent and starts recording or resumes if paused
stopRecordingOutputFormatPromiseIf successful, output will be desired output, if rejected, ErrorCase will be returned
getRecorderState-RecorderStateReturns the current state of recorder
pause--Pauses the current recording
resume--Resumes the paused recording
getUserConsent-PromiseResolves if user allows, rejects if link is not secure or user rejects

Events

EventOutputDataDescription
recorderErrorErrorCaseEmits Event in case of error

Further help / Suggestions

Contact me at kishinkarra@gmail.com