nativescript-audio-player
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

NativeScript Audio Player

NativeScript plugin to play audio files for Android and iOS.

npm npm stars forks license donate


Installation

tns plugin add nativescript-audio-player


Native Classes

Usage

TypeScript Example

import { TNSPlayer } from 'nativescript-audio-player';
 
export class YourClass {
  private _player: TNSPlayer;
 
  constructor() {
    this._player = new TNSPlayer();
    this._player.debug = true; // set true to enable TNSPlayer console logs for debugging.
    this._player
      .initFromFile({
        audioFile: '~/audio/song.mp3', // ~ = app directory
        loop: 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 milliseconds
          console.log(`song duration:`, duration);
        });
      });
  }
 
  public togglePlay() {
    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 succesfully
    console.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 error
    console.log('extra info on the error:', args.extra);
  }
}

Javascript Example:

const audio = require('nativescript-audio-player');
 
const player = new audio.TNSPlayer();
const playerOptions = {
  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);
  });

API

Player

TNSPlayer Methods

Method Description
initFromFile(options: AudioPlayerOptions): Promise Initialize player instance with a file without auto-playing.
playFromFile(options: AudioPlayerOptions): Promise Auto-play from a file.
initFromUrl(options: AudioPlayerOptions): Promise Initialize player instance from a url without auto-playing.
playFromUrl(options: AudioPlayerOptions): Promise Auto-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 the player.
playAtTime(time: number): void - iOS Only Play audio track at specific time of duration.
changePlayerSpeed(speed: number): void - On Android Only API 23+ Change the playback speed of the media player.

TNSPlayer Instance Properties

Property Description
ios Get the native ios AVAudioPlayer instance.
android Get the native android MediaPlayer instance.
debug: boolean Set true to enable debugging console logs (default false).
currentTime: number Get the current time in the media file's duration.
volume: number Get/Set the player volume. Value range from 0 to 1.

License

MIT

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.3
    477
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.3
    477
  • 1.0.2
    1
  • 1.0.1
    1
  • 1.0.0
    1

Package Sidebar

Install

npm i nativescript-audio-player

Weekly Downloads

480

Version

1.0.3

License

MIT

Unpacked Size

52.9 kB

Total Files

12

Last publish

Collaborators

  • adamdenoon