方法

play

播放

参数
参数 类型 说明
空/undefined -- 不传参数时,续播之前正在播放的节目,或播放 playlist 中第一个。
id Number 播放指定 id 的声音,若是喜马拉雅声音,播放器会自动发起请求,获取资源后播放;若非喜马拉雅声音,必须是之前在 sounds 参数中配置,否则无法播放。
sound Object 播放指定的声音,参数对象必须含有 id、src 属性
示例
// 参数为空 => 续播之前正在播的节目,或播放 playlist 列表中第一个
// 注意:如果 initLast 参数为 true,直接 play() 播放的是最近一次播放的声音(从缓存中恢复的),
//      而这个声音极有可能是不在最新的 playlist 列表中的
//      进而初始设置的 playlist 会被替换掉,列表中仅剩当前播放的声音 id
//      所以,在 playlist 列表会变动的场景下,尽可能传入参数,去播放指定声音,可以避免此问题。
player.play()

// 播放 id 为 183339305 的喜马拉雅声音
// 如果 playlist 列表中已存在此声音的 id,播放位置会移到此 id 处
// 如果 playlist 列表中不存在此声音的 id,会将 playlist 列表替换为此声音id,即:[183339305]
player.play(183339305)

// 参数为非喜马拉雅声音id,Number 类型 => 查找 sounds 集合中是否有此 id 的声音
// sounds 集合中有此 id 的声音,可播放
// 无此 id 的声音,播放失败
player.play(123)

// 参数为对象 => 必须有 id、src 属性,且有效
// 如果 playlist 列表中已存在此声音的 id,播放位置会移到此 id 处
// 如果 playlist 列表中不存在此声音的 id,会将 playlist 列表替换为此声音id,即:[1]
player.play({
  id: 1,
  src: 'http://ice1.somafm.com/groovesalad-128-aac'
})

playByIndex

按播放列表索引播放

参数
参数 类型 说明
index Number playlist 数组列表中的索引,从(从0开始,必须是正整数,列表范围内的有效值)
示例
// 播放 playlist 列表中第一个声音
player.playByIndex(0)

// 播放 playlist 列表中第4个声音
player.playByIndex(3)

pause

暂停

示例
player.pause()

stop

停止(重新播放会从头播)

示例
player.stop()

prev

播放上一个,如果当前已是列表的第一个,会自动切到倒数第一个。

示例
player.prev()

next

播放下一个,如果当前已是列表的最后一个,会自动切到第一个。

示例
player.next()

getPlaylist

获取播放列表,返回原始的 playlist,与播放模式无关。

示例

// 原始播放列表
const playlist = player.getPlaylist()

getCurrentPlaylist

获取当前的播放列表,与播放模式有关,例如:当前是”随机播放“,此时想获取当前播放列表,必须是 getCurrentPlaylist。大部分时候,getPlaylist 和 getCurrentPlaylist 返回的结果相同。

示例
// 当前播放列表
const currentPlaylist = player.getCurrentPlaylist()

getCurrentIndex

获取当前播放声音在(当前)播放列表中的索引,如果是”随机播放“,获取到的是当前播放列表中的索引,而不是原始传入的 playlist 中索引。

示例
// 索引是从0开始的
const index = player.getCurrentIndex()

getSound

获取当前播放的声音

示例
// 当前播放的声音
const sound = player.getSound()

setSound

设置当前播放的声音(通常你不太需要调用这个方法,如果是想播放某个声音,调用 play 即可)。

参数
参数 类型 说明
sound Object 声音对象,必须有 id、src 属性,否则无法播放
示例
// 当前的 playlist 播放列表中,如果没有此声音的 id,会将 playlist 列表替换为此声音id,即:[456]
// 通常来讲,没有调用这个方法的场景,而且调用 setSound 当前播放的声音会停止,新的声音也不自动播。
player.setSound({
  id: 456,
  src: 'http://ice1.somafm.com/groovesalad-128-aac'
})

getSounds

获取声音集合

示例
// 播放器当前的声音集合
const sounds = player.getSounds()

setSounds

设置声音集合

参数
参数 类型 说明
sounds Object 声音集合
示例
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"
  }
}

player.setSounds(sounds)

seek

跳往(拖动)到某播放位置,或返回当前播放位置

参数
参数 类型 说明
空/undefined -- 参数缺省,返回当前播放位置(单位:秒)。
position Number 播放位置(单位:秒)
示例
// 返回当前播放位置
const position = player.seek()

// 拖动到10秒位置并播放(如果输入的位置已超出了当前播放声音的总时长,会播放下一个)
player.seek(10)

seekForward

前进,向后(向结束位置)拖动

参数
参数 类型 说明
空/undefined -- 参数缺省,默认值为1,即前进1秒
dif Number 前进的时间步长,正数(单位:秒)
示例
// 前进1秒,缺省参数,默认 1
player.seekForward()

// 前进3秒
player.seekForward(3)

seekBack

后退,向前(向开始位置)拖动

参数
参数 类型 说明
空/undefined -- 参数缺省,默认值为1,即后退1秒
dif Number 后退的时间步长,正数(单位:秒)
示例
// 后退1秒,参数缺省,默认 1
player.seekBack()

// 后退3秒
player.seekBack(3)

getDuration

获取正在播放音频的总播放时长(单位:秒),直播返回的将是 Infinity,无正在播放音频,返回 NaN。

示例
// 当前播放音频的总时长(单位:秒)
const duration = player.getDuration()

getVolume

获取当前音量(即使静音,也会返回当前音量)

示例
// 当前音量
const volume = player.getVolume()

setVolume

设置音量
IOS 移动设备无法从 js 操控音量,所以 setVolume、upVolume、downVolume、mute、unmute 在 IOS 移动设备上都是不能正常工作的。

参数
参数 类型 说明
volume Number 音量,0~1之间的数值
示例
// 音量设置为0.9
player.setVolume(0.9)

// 音量设置为0,即静音
player.setVolume(0)

upVolume

音量增大,增大到1即不再继续增大。

参数
参数 类型 说明
空/undefined -- 参数缺省,默认为 0.1
dif Number 增大的音量步长,0~1 之间的数值
示例
// 音量增大 0.1
player.upVolume()

// 音量增大 0.2
player.upVolume(0.2)

downVolume

音量减小,减小到0即不再继续减小。

参数
参数 类型 说明
空/undefined -- 参数缺省,默认为 0.1
dif Number 减小的音量步长,0~1 之间的数值
示例
// 音量减小 0.1
player.downVolume()

// 音量减小 0.2
player.downVolume(0.2)

mute

静音

示例
player.mute()

unmute

恢复音量

示例
player.unmute()

getPlaybackRate

获取当前播放速率

示例
// 当前播放速率
const playbackRate = player.getPlaybackRate()

setPlaybackRate

设置播放速率

参数
参数 类型 说明
playbackRate Number 播放速度,可选值:0.5、1、2、3、4
示例
// 设置2倍速度播放
player.setPlaybackRate(2)

getPlayMode

获取播放模式,查看播放模式值

示例
// 当前播放模式
const playMode = player.getPlayMode()

setPlayMode

设置播放模式

参数
参数 类型 说明
playMode String 播放模式,可选的播放模式值
示例
// 设置为单个播放,播完即止。
player.setPlayMode('single')

getPlayState

获取当前播放器状态,可能的状态值

示例
// 播放器当前状态
const playState = player.getPlayState()

// 是否正在播放
const isPlaying = playState === 'playing'

preloadSound

预加载声音,喜马拉雅声音在播放时,是通过接口请求获取到播放地址,所以提供预加载方法,可以提前准备要播放的声音。

参数
参数 类型 说明
id Number 喜马拉雅声音 id
success Function 预加载成功的回调函数
error Function 预加载失败的回调函数
示例
// 预加载某个声音(通常这样调用即可,执行成功后声音被自动加入到 sounds 声音集合中,后续播放时不再发送请求)
player.preloadSound(197807543)

// 回调示例
player.preloadSound(197807543, sound => {
  // 成功回调,sound: 预加载成功的声音
}, id => {
  // 失败回调,id: 失败时的声音id
})

// 在播放当前声音时,可以预加载当前播放列表中下一个声音
player.on('play', sound => {
  // 当前播放列表
  const currentPlaylist = player.getCurrentPlaylist()
  // 下一个声音在列表中索引
  const nextIndex = player.getCurrentIndex() + 1
  // 下一个声音的id
  const nextSoundID = currentPlaylist[nextIndex]
  // 播放器的声音集合
  const sounds = player.getSounds()

  // 下一个声音存在 + 声音集合中没有此声音 => 预加载这个声音
  if(nextSoundID && !sounds[nextSoundID]) {
    // 预加载下一个声音(通常这样调用即可,声音被自动加入到 sounds 声音集合中,后续播放时不再发送请求)
    player.preloadSound(nextSoundID)

    // 预加载声音时,如果想要执行一些自己的操作,可以在 success、error 回调里操作
    // player.preloadSound(
    //   nextSoundID,
    //   function(sound) {
    //     // 预加载成功回调
    //   }, 
    //   function(id) {
    //     // 预加载失败回调
    //   }
    // )
  }
})
© www.ximalaya.com lnc.ALL Rights Reserved 修订时间: 2019-08-08 18:41:39

results matching ""

    No results matching ""