Skip to content

🎤 NativeScript plugin to record and play audio 🎵

License

Notifications You must be signed in to change notification settings

echap/nativescript-audio

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm npm

NativeScript-Audio

NativeScript plugin to play and record audio files for Android and iOS.

Uses the following native classes:

Android

iOS

Note: You will need to grant permissions on iOS to allow the device to access the microphone if you are using the recording function. If you don't, your app may crash on device and/or your app might be rejected during Apple's review routine. To do this, add this key to your app/App_Resources/iOS/Info.plist file:

<key>NSMicrophoneUsageDescription</key>
	<string>Recording Practice Sessions</string>

Installation

tns plugin add nativescript-audio

Sample Screen

AudioExample

API

TNSRecorder

Method Description
TNSRecorder.CAN_RECORD(): boolean Determine if ready to record.
start(options: AudioRecorderOptions): Promise Start recording file.
stop(): void Stop recording.
dispose(): void Free up system resources when done with recorder.

TNSPlayer

Method Description
playFromFile( { audioFile: string, loop: boolean, completeCallback?: Function, errorCallback?: Function, infoCallback?: Function; } ): Promise Play from a file.
playFromUrl( { audioFile: string, loop: boolean, completeCallback?: Function, errorCallback?: Function, infoCallback?: Function; } ): Promise Play from a url.
pause(): Promise<boolean> Pause playback.
resume(): void Resume playback.
seekTo(time:number): Promise<boolean> Seek to position.
dispose(): Promise<boolean> Free up resources when done playing audio.
isAudioPlaying(): boolean Determine if player is playing.
getAudioTrackDuration(): Promise<string> duration of media file assigned to mediaPlayer

Access the underlying native object instance via:

  • instance: AVAudioPlayer on iOS and MediaPlayer on Android

Platform specific:

iOS:

playAtTime(time: number): Play at a specific time.

Why the TNS prefixed name?

TNS stands for Telerik NativeScript

iOS uses classes prefixed with NS (stemming from the NeXTSTEP days of old): https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/

To avoid confusion with iOS native classes, TNS is used instead.

License

MIT

About

🎤 NativeScript plugin to record and play audio 🎵

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 98.1%
  • CSS 1.9%