为帮助用户更好更快的使用原生插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
audioStreamer 是一个音频播放器,使用本原生插件可实现对音频文件的播放、暂停、停止、跳转、设置当前播放位置等各种功能。支持对本地、网络音频资源的播放。
如需支持后台播放功能请参考 config.xml 配置说明文档里关于 BackgroundMode 的配置
配置实例如下:
<preference name="backgroundMode" value="audio"/>
在 iOS 平台上,当音频在后台播放时,若启动其它播放音频的 APP,则后台播放事件会被挂起。当有电话呼入、呼出或其它占用喇叭的事件发生时,也会打断后台播放音频。被打断播放的事件可通过 addEventListener 接口监听。
iOS平台支持的格式如下:
audio/vnd.wave, audio/aacp, video/3gpp2, audio/mpeg3, audio/mp3, audio/x-caf, audio/mpeg, video/quicktime, audio/x-mpeg3, video/mp4, audio/wav, video/avi, audio/flac, audio/mp4, audio/x-mpg, audio/scpls, video/x-m4v, audio/x-wav, audio/x-aiff, application/ttml+xml, application/vnd.apple.mpegurl, video/3gpp, text/vtt, audio/usac, audio/x-mpeg, audio/wave, audio/x-m4r, audio/x-mp3, audio/AMR, audio/aiff, audio/3gpp2, audio/aac, audio/mpg, audio/mpegurl, audio/x-m4b, application/mp4, audio/x-m4p, audio/x-scpls, audio/x-mpegurl, audio/x-aac, audio/3gpp, audio/basic, audio/x-m4a, application/x-mpegurl
打开音频播放器,并播放。
openPlayer({params}, callback(ret))
path:
注意:如果需要播放"/var/mobile/Containers/Data/Application/239DBA7D-B4E4-4BA6-A100-7A3996A9373B/Documents/uzfs/A6079192279888/test.mp3" 该路径的音频, 需要添加类似".mp3"的后缀,否则不能正常播放。
ret:
{
status: true, //布尔类型;操作成功状态值,true|false
duration:255 //数字类型;视频总时长,单位为秒
}
var audioStreamer = api.require('audioStreamer');
audioStreamer.openPlayer({
path: 'http://7xisq1.com1.z0.glb.clouddn.com/yonbuilder/0d0b81b8bd5ab81bda9ca54267eb9b98.mp3',
}, function(ret) {
if (ret.status) {
api.alert({ msg: JSON.stringify(ret) });
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
暂停播放 ,如果想恢复播放可调用openPlayer继续播放(仅支持安卓这样调用)
pause()
var audioStreamer = api.require('audioStreamer');
audioStreamer.pause();
iOS系统,Android系统
可提供的1.0.0及更高版本
恢复播放,仅支持iOS
resume()
var audioStreamer = api.require('audioStreamer');
audioStreamer.resume();
iOS系统
可提供的1.0.0及更高版本
停止播放
stop()
var audioStreamer = api.require('audioStreamer');
audioStreamer.stop();
iOS系统,Android系统
可提供的1.0.0及更高版本
设置播放位置
seekToTime({params})
time:
var audioStreamer = api.require('audioStreamer');
audioStreamer.seekToTime({
time: 10
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置是否循环播放
setLoop(params)
loop:
var audioStreamer = api.require('audioStreamer');
audioStreamer.setLoop({loop:true});
iOS系统,Android系统
可提供的1.0.2及更高版本
获取当前播放的位置
getCurrentTime(callback(ret))
ret:
{
current: 50 //数字类型;当前播放位置,单位为秒(s)
}
var audioStreamer = api.require('audioStreamer');
audioStreamer.getCurrentTime(function(ret) {
api.alert({ msg: ret.current });
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取已缓冲的音频文件占音频文件的百分比
getBufferingRatio(callback(ret))
ret:
{
ratio: 50 //数字类型;获取的已缓冲的音频文件占音频文件的百分比,取值范围:0-100
}
var audioStreamer = api.require('audioStreamer');
audioStreamer.getBufferingRatio(function(ret) {
api.alert({ msg: ret.ratio });
});
iOS系统,Android系统
可提供的1.0.0及更高版本
播放状态监听
addEventListener( callback(ret))
ret:
{
BufferingTime: 30 //数字类型;当前缓冲的时间,单位秒
state: 'prepare' //字符串类型;当前播放器的状态;取值范围如下:
//prepare:准备完成
//finished:播放完成
//buffering:正在缓冲
//pause 暂停
//resume 恢复播放
}
var audioStreamer = api.require('audioStreamer');
audioStreamer.addEventListener({
}, function(ret) {
alert(ret.state);
});
iOS系统,Android系统
可提供的1.0.0及更高版本
监听实时播放进度
addProgressListener( callback(ret))
ret:
{
progress:100 // 实时播放进度
}
var audioStreamer = api.require('audioStreamer');
audioStreamer.addProgressListener({
}, function(ret) {
alert(ret.progress);
});
iOS系统,Android系统
可提供的1.0.3及更高版本
移除实时播放进度
removeProgressListener( callback(ret))
ret:
{
status:true //移除成功
}
var audioStreamer = api.require('audioStreamer');
audioStreamer.removeProgressListener({
}, function(ret) {
alert(ret);
});
iOS系统,Android系统
可提供的1.0.3及更高版本
设置音量
setVolume({params})
volume:
var audioStreamer = api.require('audioStreamer');
audioStreamer.setVolume({
volume: 0.6
});
iOS系统,Android系统
可提供的1.0.1及更高版本
获取音量
getVolume(callback(ret))
ret:
{
volume: 0.5 //数字类型;当前音频播放器的音量,取值范围:0-1
}
var audioStreamer = api.require('audioStreamer');
audioStreamer.getVolume(function(ret) {
api.alert({ msg: ret.volume });
});
iOS系统,Android系统
可提供的1.0.1及更高版本
使声音在听筒播放
onCall()
var audioStreamer = api.require('audioStreamer');
audioStreamer.onCall();
iOS系统,Android系统
可提供的1.0.2及更高版本
正常播放声音
onNormal()
var audioStreamer = api.require('audioStreamer');
audioStreamer.onNormal();
iOS系统,Android系统
可提供的1.0.2及更高版本
为帮助用户更好更快的使用原生插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。