audioStreamer

来自于:APICloud立即使用

openPlayer pause resume stop seekToTime setLoop getCurrentTime getBufferingRatio addEventListener addProgressListener removeProgressListener setVolume getVolume onCall onNormal

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

模块概述

audioStreamer 是一个音频播放器,使用本模块可实现对音频文件的播放、暂停、停止、跳转、设置当前播放位置等各种功能。支持对本地、网络音频资源的播放。

如需支持后台播放功能请参考 config.xml 配置说明文档里关于 BackgroundMode 的配置

配置实例如下:

  1. <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对象
  • 内部字段:
  1. {
  2. status: true, //布尔类型;操作成功状态值,true|false
  3. duration:255 //数字类型;视频总时长,单位为秒
  4. }

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.openPlayer({
  3. path: 'http://7xisq1.com1.z0.glb.clouddn.com/apicloud/0d0b81b8bd5ab81bda9ca54267eb9b98.mp3',
  4. }, function(ret) {
  5. if (ret.status) {
  6. api.alert({ msg: JSON.stringify(ret) });
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

pause

暂停播放 ,如果想恢复播放可调用openPlayer继续播放(仅支持安卓这样调用)

pause()

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.pause();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

resume

恢复播放,仅支持iOS

resume()

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.resume();

可用性

iOS系统

可提供的1.0.0及更高版本

stop

停止播放

stop()

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.stop();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

seekToTime

设置播放位置

seekToTime({params})

params

time:

  • 类型:数字
  • 描述:(可选项)播放位置,取值范围大于 0 不超过当前播放音频的总时长,单位为秒(s)
  • 默认值:0

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.seekToTime({
  3. time: 10
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setLoop

设置是否循环播放

setLoop(params)

params

loop:

  • 类型:布尔类型
  • 描述:设置是否循环播放

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.setLoop({loop:true});

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

getCurrentTime

获取当前播放的位置

getCurrentTime(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. current: 50 //数字类型;当前播放位置,单位为秒(s)
  3. }

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.getCurrentTime(function(ret) {
  3. api.alert({ msg: ret.current });
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getBufferingRatio

获取已缓冲的音频文件占音频文件的百分比

getBufferingRatio(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. ratio: 50 //数字类型;获取的已缓冲的音频文件占音频文件的百分比,取值范围:0-100
  3. }

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.getBufferingRatio(function(ret) {
  3. api.alert({ msg: ret.ratio });
  4. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventListener

播放状态监听

addEventListener( callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. BufferingTime: 30 //数字类型;当前缓冲的时间,单位秒
  3. state: 'prepare' //字符串类型;当前播放器的状态;取值范围如下:
  4. //prepare:准备完成
  5. //finished:播放完成
  6. //buffering:正在缓冲
  7. //pause 暂停
  8. //resume 恢复播放
  9. }

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.addEventListener({
  3. }, function(ret) {
  4. alert(ret.state);
  5. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addProgressListener

监听实时播放进度

addProgressListener( callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. progress:100 // 实时播放进度
  3. }

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.addProgressListener({
  3. }, function(ret) {
  4. alert(ret.progress);
  5. });

可用性

iOS系统,Android系统

可提供的1.0.3及更高版本

removeProgressListener

移除实时播放进度

removeProgressListener( callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status:true //移除成功
  3. }

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.removeProgressListener({
  3. }, function(ret) {
  4. alert(ret);
  5. });

可用性

iOS系统,Android系统

可提供的1.0.3及更高版本

setVolume

设置音量

setVolume({params})

params

volume:

  • 类型:数字
  • 描述:(可选项)音量大小(0-1)
  • 默认值:0

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.setVolume({
  3. volume: 0.6
  4. });

可用性

iOS系统,Android系统

可提供的1.0.1及更高版本

getVolume

获取音量

getVolume(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. volume: 0.5 //数字类型;当前音频播放器的音量,取值范围:0-1
  3. }

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.getVolume(function(ret) {
  3. api.alert({ msg: ret.volume });
  4. });

可用性

iOS系统,Android系统

可提供的1.0.1及更高版本

onCall

使声音在听筒播放

onCall()

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.onCall();

补充说明

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

onNormal

正常播放声音

onNormal()

示例代码

  1. var audioStreamer = api.require('audioStreamer');
  2. audioStreamer.onNormal();

补充说明

可用性

iOS系统,Android系统

可提供的1.0.2及更高版本

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。