参数
参数由播放器参数、应用参数两部分组成,通常不需要配置应用参数,因为调用 config 初始化方法时,应用相关的信息已经全局配置好。
播放器参数
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
playlist | Array | 是 | [] | 播放列表,数组的元素为 Number 类型的声音 ID ,通常 ID 需要是喜马拉雅声音 ID;若非喜马拉雅声音,则必须是 sounds 属性中该声音已存在(播放非喜马拉雅声音示例) |
playMode | String | 否 | 'order' | 播放模式,查看可选值 |
initLast | Boolean | 否 | false | 是否从localStorage中读取最近播放信息,加载时(如:刷新页面、关闭页面重新打开)恢复,包括:声音id、playlist、volume、position、sound、playmode、mute等。 |
breakpoint | Boolean | 否 | true | 断点续播,即从上一次播放的位置续播,低版本ios不支持,备注:页面关闭时,会触发stop,播放位置回到了0,所以关闭页面后恢复播放是从头播,而刷新页面可以从之前的位置续播。 |
autoSkip | Boolean | 否 | false | 声音不可播时,自动跳过播放下一个,自动跳过备注 |
sounds | Object | 否 | {} | 播放器的声音集合,通常不需要设置此项,查看示例 |
debug | Boolean | 否 | false | 是否开启调试模式(控制台输出日志) |
应用参数
这里的应用参数和调用 config 方法初始化 JSSDK 时的参数一致,只是在这里非必传。通常不需要配置这些参数。
参数名 | 类型 | 必填 | 默认值 | 描述 |
---|---|---|---|---|
app_key | String | 否 | 无 | 喜马拉雅开放平台应用公钥,请参考准备工作的介绍 |
sig_url | String | 否 | 无 | 返回 signature、access_token 的接口 URL 地址(例:https://api.xxxxxxxx.com/jssdk_sig ) , 接口由开发者服务端开发 |
device_id | String | 否 | 无 | 设备唯一标识,比如 Android 系统可以传 imei,也可以传设备 MAC 地址。 如果公司有用户隐私政策考虑可以用 MD5(真实设备号)取代。 但禁止伪造,否则会被检测出来并封号!或者,建议在用户第一次访问页面时随机生成 UUID 作为设备 ID,并且存为永久 cookie 避免每次都重新生成,设备 ID 生成说明 。 |
timeout | Number | 否 | 10 * 1000 | 请求超时时间(单位:毫秒,默认 10S) |
播放模式
播放模式 | 值 | 说明 |
---|---|---|
顺序播放 | 'order' | 到最后一个会切到第一个继续播 |
单曲循环 | 'loop' | 始终播放同一个 |
随机播放 | 'random' | 到最后一个会切到第一个继续播 |
单个播放 | 'single' | 播完即止 |
播放器状态
播放器状态 | 值 | 说明 |
---|---|---|
ready | 'ready' | 播放器已就绪 |
loading | 'loading' | 加载中(1.播放,2.恢复播放,3.seek)引起的声音加载 |
playing | 'playing' | 播放中 |
paused | 'paused' | 暂停 |
stoped | 'stoped' | 停止,切换声音(例如:prev、next等)时也会触发,先停止正在播的音频 |
finished | 'finished' | 结束,完整播放结束时触发 |
loaderror | 'loaderror' | 下载资源发生错误(不包含接口请求喜马拉雅声音出错的情形) |
设置sounds
sounds 的值,id、src 属性必须有,否则无法播放,id 为 Number 类型的正整数(建议不要用奇怪的数字、浮点数等,虽然不一定会出错)。
import { XMplayer } from '@xmly-fem/web-jssdk'
const sounds = {
"182847535": {
"id": 182847535,
"src": "http://aod.tx.xmcdn.com/group59/M09/3B/54/wKgLelzWfNbQR3a6ABz31eyJjKY954.m4a"
},
"183339305": {
"id": 183339305,
"src": "http://audio.xmcdn.com/group58/M06/6A/D9/wKgLglzZLrDhQ2V_ABbu1ZmT9ls470.m4a"
},
"197491263": {
"id": 197491263,
"src": "http://audio.xmcdn.com/group62/M04/2E/0F/wKgMZ10qFCqxgoFOABDIjrPCwpo708.m4a"
}
}
const player = new XMplayer({
playlist: [182847535, 183339305, 197491263], // 应当同时将 id 加入 playlist, 否则设置 sounds 显得没有意义
sounds,
})
自动跳过
如果手动上一个,声音不可播时,也会自动切换下一个;
不可播的情形包括:播放器请求喜马拉雅声音出错或未获取到正确结果、声音的 src 非法(而声音加载过程发生错误等情形不包含,声音加载发生错误会触发 loaderror 事件,需自己处理);
自动跳过会在播放列表的最后一个声音终止,例如:最后一个声音不可播,不会自动切换去播第一个声音,防止整个列表都是不可播而产生死循环;