@martin-juul/nativescript-astreamer
by martin-juul | v1.0.0
NativeScript 插件,用于从文件系统和网络播放音频。
npm i --save @martin-juul/nativescript-astreamer

nativescript-astreamer


源自 https://github.com/nstudio/nativescript-audio

更改

  • 移除了录音功能
  • 修复了 iOS 播放器

安装

tns plugin add nativescript-astreamer


Android 原生类

iOS 原生类

用法

TypeScript 示例

import { NSAudioPlayer } from 'nativescript-astreamer';

export class YourClass {
private player: NSAudioPlayer;

constructor() {
this.player = new NSAudioPlayer();
this.player.debug = true; // set true to enable TNSPlayer console logs for debugging.

(async () => {
await this.player.initFromFile({
audioFile: '~/audio/song.mp3', // ~ = app directory
loop: false,
completeCallback: this._trackComplete.bind(this),
errorCallback: this._trackError.bind(this)
})

// iOS: duration is in seconds
// Android: duration is in milliseconds
const duration = this.player.getAudioTrackDuration();
console.log(`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);
}
}

API

播放器

NSAudioPlayer 方法

方法 描述
initFromFile(options: AudioPlayerOptions): Promise 初始化播放器实例,不自动播放。
playFromFile(options: AudioPlayerOptions): Promise 从文件自动播放。
initFromUrl(options: AudioPlayerOptions): Promise 从 URL 初始化播放器实例,不自动播放。
playFromUrl(options: AudioPlayerOptions): Promise 从 URL 自动播放。
pause(): Promise<boolean> 暂停播放。
resume(): void 恢复播放。
seekTo(time:number): Promise<boolean> 跳转到音频文件的指定位置(秒)。
dispose(): Promise<boolean> 播放音频完成后释放资源。
isAudioPlaying(): boolean 确定播放器是否正在播放。
getAudioTrackDuration(): Promise<string> 分配给播放器的媒体文件的持续时间。
playAtTime(time: number): void - iOS 仅支持 在音频文件的特定时间播放音频。
changePlayerSpeed(speed: number): void - 仅在 Android API 23+ 上支持 更改媒体播放器的播放速度。

NSAudioPlayer 实例属性

属性 描述
ios 获取原生的 ios AVAudioPlayer 实例。
android 获取原生的 android MediaPlayer 实例。
debug: boolean 设置为 true 以启用调试控制台日志(默认为 false)。
currentTime: number 获取媒体文件持续时间中的当前时间。
volume: number 获取/设置播放器音量。值范围为 0 到 1。

许可证

MIT

演示应用

:no_entry_sign

演示尚未迁移。

  • fork/clone 仓库
  • cd 到 src 目录
  • 执行 npm run demo.androidnpm run demo.ios(如果您好奇,脚本位于 src 目录中 package.json 的 scripts 下)