Skip to content

SpokenAAC fork of the capacitor community plugin to add experimental new features.

License

Notifications You must be signed in to change notification settings

spokenaac/native-audio

Β 
Β 

Repository files navigation


Native Audio

@capacitor-community/native-audio

Capacitor community plugin for playing sounds.


Capacitor Native Audio Plugin

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

Click on video to see example πŸ’₯

YouTube Example

Maintainers

Maintainer GitHub Social
Maxim Bazuev bazuka5801 Telegram

Mainteinance Status: Actively Maintained

Preparation

All audio place in specific platform folder

Andoid: android/app/src/assets

iOS: ios/App/App/sounds

Web: assets/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, Android and Web, no further steps are needed.

Configuration

No configuration required for this plugin.

Supported methods

Name Android iOS Web
configure βœ… βœ… ❌
preload βœ… βœ… βœ…
play βœ… βœ… βœ…
pause βœ… βœ… βœ…
resume βœ… βœ… βœ…
loop βœ… βœ… βœ…
stop βœ… βœ… βœ…
unload βœ… βœ… βœ…
setVolume βœ… βœ… βœ…
getDuration βœ… βœ… βœ…
getCurrentTime βœ… βœ… βœ…
isPlaying βœ… βœ… βœ…

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);
})

/**
 * This method will return false if audio is paused or not loaded.
 * @param assetId - identifier of the asset
 * @returns {isPlaying: boolean}
 */
NativeAudio.isPlaying({
  assetId: 'fire'
})
.then(result => {
  console.log(result.isPlaying);
})

API

playRaw(...)

playRaw(options: PlayRawOptions, callback: PlayRawCallback) => Promise<void>

Takes in a base64-encoded string, decodes, and plays the raw mp3 data via routing to device speakers

Param Type Description
options PlayRawOptions Object: { rawAudio: string, bluetoothBuffer: number, bluetoothKeepAlive: number }
callback PlayRawCallback Callback: (success, error) => {}

stop()

stop() => Promise<Response>

Immediately stops all audio being played.

Returns: Promise<Response>


bingbong()

bingbong() => Promise<void>

If you see these dogs in your front yard, just know upstairs I'm going hard. BING BONG.


Interfaces

PlayRawOptions

Prop Type
rawAudio string
bluetoothBuffer number
bluetoothKeepAlive number

Response

Prop Type
ok boolean
done boolean
msg string

Type Aliases

PlayRawCallback

(response: Response, error?: any): void

About

SpokenAAC fork of the capacitor community plugin to add experimental new features.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 65.8%
  • Java 23.8%
  • TypeScript 7.3%
  • Ruby 1.3%
  • Objective-C 1.1%
  • JavaScript 0.6%
  • Shell 0.1%