3.0.0 β€’ Published 3 years ago

@kodit/capacitor-native-audio v3.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Capacitor Native Audio Plugin

Capacitor plugin for native audio engine. Capacitor v3 - βœ… Support!

Click on video to see example πŸ’₯

YouTube Example

Maintainers

MaintainerGitHubSocial
Maxim Bazuevbazuka5801Telegram

Mainteinance Status: Actively Maintained

Preparation

All audio place in specific platform folder

Andoid: android/app/src/main/res/raw

iOS: ios/App/App/sounds

Installation

To use npm

npm install @capacitor-community/native-audio

To use yarn

yarn add @capacitor-community/native-audio

Sync native files

npx cap sync

On iOS and Android, no further steps are needed.

Configuration

No configuration required for this plugin.

Supported methods

NameAndroidiOSWeb
configureβœ…βœ…βŒ
preloadSimpleβœ…βœ…βŒ
preloadComplexβœ…βœ…βŒ
playβœ…βœ…βŒ
loopβœ…βœ…βŒ
stopβœ…βœ…βŒ
unloadβœ…βœ…βŒ
setVolumeβœ…βœ…βŒ
getDurationβœ…βœ…βŒ
getCurrentTimeβœ…βœ…βŒ

Usage

Example repository

import {NativeAudio} from '@capacitor-community/native-audio'


/**
 * This method will load more optimized audio files for background into memory.
 * @param assetPath - relative path of the file or absolute url (file://)
 *        assetId - unique identifier of the file
 *        audioChannelNum - number of audio channels
 *        isUrl - pass true if assetPath is a `file://` url
 * @returns void
 */
NativeAudio.preload({
    assetId: "fire",
    assetPath: "fire.mp3",
    audioChannelNum: 1,
    isUrl: false
});

/**
 * This method will play the loaded audio file if present in the memory.
 * @param assetId - identifier of the asset
 * @param time - (optional) play with seek. example: 6.0 - start playing track from 6 sec
 * @returns void
 */
NativeAudio.play({
    assetId: 'fire',
    // time: 6.0 - seek time
});

/**
 * This method will loop the audio file for playback.
 * @param assetId - identifier of the asset
 * @returns void
 */
NativeAudio.loop({
  assetId: 'fire',
});


/**
 * This method will stop the audio file if it's currently playing.
 * @param assetId - identifier of the asset
 * @returns void
 */
NativeAudio.stop({
  assetId: 'fire',
});

/**
 * This method will unload the audio file from the memory.
 * @param assetId - identifier of the asset
 * @returns void
 */
NativeAudio.unload({
  assetId: 'fire',
});

/**
 * This method will set the new volume for a audio file.
 * @param assetId - identifier of the asset
 *        volume - numerical value of the volume between 0.1 - 1.0
 * @returns void
 */
NativeAudio.setVolume({
  assetId: 'fire',
  volume: 0.4,
});

/**
 * this method will getΒ the duration of an audio file.
 * only works if channels == 1
 */
NativeAudio.getDuration({
  assetId: 'fire'
})
.then(result => {
  console.log(result.duration);
})

/**
 * this method will get the current time of a playing audio file.
 * only works if channels == 1
 */
NativeAudio.getCurrentTime({
  assetId: 'fire'
});
.then(result => {
  console.log(result.currentTime);
})

API

configure(...)

configure(options: ConfigureOptions) => Promise<void>
ParamType
optionsConfigureOptions

preload(...)

preload(options: PreloadOptions) => Promise<void>
ParamType
optionsPreloadOptions

play(...)

play(options: { assetId: string; time: number; }) => Promise<void>
ParamType
options{ assetId: string; time: number; }

resume(...)

resume(options: { assetId: string; }) => Promise<void>
ParamType
options{ assetId: string; }

loop(...)

loop(options: { assetId: string; }) => Promise<void>
ParamType
options{ assetId: string; }

stop(...)

stop(options: { assetId: string; }) => Promise<void>
ParamType
options{ assetId: string; }

unload(...)

unload(options: { assetId: string; }) => Promise<void>
ParamType
options{ assetId: string; }

setVolume(...)

setVolume(options: { assetId: string; volume: number; }) => Promise<void>
ParamType
options{ assetId: string; volume: number; }

getCurrentTime(...)

getCurrentTime(options: { assetId: string; }) => Promise<{ currentTime: number; }>
ParamType
options{ assetId: string; }

Returns: Promise<{ currentTime: number; }>


getDuration(...)

getDuration(options: { assetId: string; }) => Promise<{ duration: number; }>
ParamType
options{ assetId: string; }

Returns: Promise<{ duration: number; }>


Interfaces

ConfigureOptions

PropType
fadeboolean

PreloadOptions

PropType
assetPathstring
assetIdstring
volumenumber
audioChannelNumnumber
isUrlboolean