audioStreamer
来自于:APICloud立即使用
openPlayer pause resume stop seekToTime setLoop getCurrentTime getBufferingRatio addEventListener addProgressListener removeProgressListener setVolume getVolume onCall onNormal
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
模块概述
audioStreamer 是一个音频播放器,使用本模块可实现对音频文件的播放、暂停、停止、跳转、设置当前播放位置等各种功能。支持对本地、网络音频资源的播放。
如需支持后台播放功能请参考 config.xml 配置说明文档里关于 BackgroundMode 的配置
配置实例如下:
<preference name="backgroundMode" value="audio"/>
在 iOS 平台上,当音频在后台播放时,若启动其它播放音频的 APP,则后台播放事件会被挂起。当有电话呼入、呼出或其它占用喇叭的事件发生时,也会打断后台播放音频。被打断播放的事件可通过 addEventListener 接口监听。
模块接口
openPlayer
打开音频播放器,并播放。
openPlayer({params}, callback(ret))
params
path:
- 类型:字符串
- 描述:音频资源地址,支持本地和网络路径(fs://、widget://、http://、https:// 等)
注意:如果需要播放”/var/mobile/Containers/Data/Application/239DBA7D-B4E4-4BA6-A100-7A3996A9373B/Documents/uzfs/A6079192279888/test.mp3” 该路径的音频, 需要添加类似”.mp3”的后缀,否则不能正常播放。
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔类型;操作成功状态值,true|false
duration:255 //数字类型;视频总时长,单位为秒
}
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.openPlayer({
path: 'http://7xisq1.com1.z0.glb.clouddn.com/apicloud/0d0b81b8bd5ab81bda9ca54267eb9b98.mp3',
}, function(ret) {
if (ret.status) {
api.alert({ msg: JSON.stringify(ret) });
}
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
pause
暂停播放 ,如果想恢复播放可调用openPlayer继续播放(仅支持安卓这样调用)
pause()
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.pause();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
resume
恢复播放,仅支持iOS
resume()
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.resume();
可用性
iOS系统
可提供的1.0.0及更高版本
stop
停止播放
stop()
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.stop();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
seekToTime
设置播放位置
seekToTime({params})
params
time:
- 类型:数字
- 描述:(可选项)播放位置,取值范围大于 0 不超过当前播放音频的总时长,单位为秒(s)
- 默认值:0
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.seekToTime({
time: 10
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setLoop
设置是否循环播放
setLoop(params)
params
loop:
- 类型:布尔类型
- 描述:设置是否循环播放
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.setLoop({loop:true});
可用性
iOS系统,Android系统
可提供的1.0.2及更高版本
getCurrentTime
获取当前播放的位置
getCurrentTime(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
current: 50 //数字类型;当前播放位置,单位为秒(s)
}
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.getCurrentTime(function(ret) {
api.alert({ msg: ret.current });
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getBufferingRatio
获取已缓冲的音频文件占音频文件的百分比
getBufferingRatio(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
ratio: 50 //数字类型;获取的已缓冲的音频文件占音频文件的百分比,取值范围:0-100
}
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.getBufferingRatio(function(ret) {
api.alert({ msg: ret.ratio });
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
addEventListener
播放状态监听
addEventListener( callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
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
监听实时播放进度
addProgressListener( callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
progress:100 // 实时播放进度
}
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.addProgressListener({
}, function(ret) {
alert(ret.progress);
});
可用性
iOS系统,Android系统
可提供的1.0.3及更高版本
removeProgressListener
移除实时播放进度
removeProgressListener( callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status:true //移除成功
}
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.removeProgressListener({
}, function(ret) {
alert(ret);
});
可用性
iOS系统,Android系统
可提供的1.0.3及更高版本
setVolume
设置音量
setVolume({params})
params
volume:
- 类型:数字
- 描述:(可选项)音量大小(0-1)
- 默认值:0
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.setVolume({
volume: 0.6
});
可用性
iOS系统,Android系统
可提供的1.0.1及更高版本
getVolume
获取音量
getVolume(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
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
使声音在听筒播放
onCall()
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.onCall();
补充说明
可用性
iOS系统,Android系统
可提供的1.0.2及更高版本
onNormal
正常播放声音
onNormal()
示例代码
var audioStreamer = api.require('audioStreamer');
audioStreamer.onNormal();
补充说明
可用性
iOS系统,Android系统
可提供的1.0.2及更高版本
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。