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
:AVAudioPlayer
on iOS andMediaPlayer
on 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.