You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NativeScript plugin to play and record audio files for Android and iOS.
Do you need assistance on your project or plugin? Contact the nStudio team anytime at team@nstudio.io to get up to speed with the best practices in mobile and web app development.
Installation
tns plugin add nativescript-audio
Recording Permissions
iOS
To record, add the following to your project's Info.plist file in the App_Resources/iOS directory (see here for example).
<key>NSMicrophoneUsageDescription</key>
<string>The app needs to access your Microphone to record.</string>
Android
To record, add the following permission to your AndroidManifest.xml file in App_Resources/Android/ directory (see here for example).
import{TNSPlayer}from'nativescript-audio';exportclassYourClass{private_player: TNSPlayer;constructor(){this._player=newTNSPlayer();this._player.debug=true;// set true to enable TNSPlayer console logs for debugging.this._player.initFromFile({audioFile: '~/audio/song.mp3',// ~ = app directoryloop: false,completeCallback: this._trackComplete.bind(this),errorCallback: this._trackError.bind(this)}).then(()=>{this._player.getAudioTrackDuration().then(duration=>{// iOS: duration is in seconds// Android: duration is in millisecondsconsole.log(`song duration:`,duration);});});}publictogglePlay(){if(this._player.isAudioPlaying()){this._player.pause();}else{this._player.play();}}private_trackComplete(args: any){console.log('reference back to player:',args.player);// iOS only: flag indicating if completed succesfullyconsole.log('whether song play completed successfully:',args.flag);}private_trackError(args: any){console.log('reference back to player:',args.player);console.log('the error:',args.error);// Android only: extra detail on errorconsole.log('extra info on the error:',args.extra);}}
Javascript Example:
constaudio=require('nativescript-audio');constplayer=newaudio.TNSPlayer();constplayerOptions={audioFile: 'http://some/audio/file.mp3',loop: false,completeCallback: function(){console.log('finished playing');},errorCallback: function(errorObject){console.log(JSON.stringify(errorObject));},infoCallback: function(args){console.log(JSON.stringify(args));}};player.playFromUrl(playerOptions).then(function(res){console.log(res);}).catch(function(err){console.log('something went wrong...',err);});