nativescript-audioplay
由mehyaa创建 | v1.0.1
用于播放音频的NativeScript插件。
npm i --save nativescript-audioplay

NativeScript 音频播放

用于在Android和iOS上播放音频文件的NativeScript插件。

nativescript-audio (v4.3.5)移植而来,仅需要较少的权限以进行音频播放。所有荣誉归原作者所有:原始项目贡献者

npm npm-downloads stars forks license donate

安装

tns plugin add nativescript-audioplay


Android 原生类

iOS 原生类

使用方法

TypeScript 示例

import { TNSPlayer } from 'nativescript-audioplay';

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 示例

const audio = require('nativescript-audioplay');

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

TNSPlayer 方法

方法 描述
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+ 上支持 更改媒体播放器的播放速度。

TNSPlayer 实例属性

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

许可证

MIT

致谢

nativescript-audio