NativeScript plugin to play and record audio files for Android and iOS.
Uses the following native classes:
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>
tns plugin add nativescript-audio
| 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. |
| 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:AVAudioPlayeron iOS andMediaPlayeron Android
Platform specific:
iOS:
playAtTime(time: number): Play at a specific time.
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.
