最近更新时间:2024.04.08 11:42:04
首次发布时间:2021.05.17 17:30:40
VePlayer 通过 HTML5 的 <video/>
标签实现视频播放,能满足视频播放的常用功能需求。本文为您介绍如何实现 VePlayer 提供的基础功能。
VePlayer 的基础功能由播放器内核的属性或接口实现。
获取播放器内核的示例代码如下所示。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, url: 'xx.mp4' }); playerSdk.on('complete', () => { // 获取播放器内核 const player = playerSdk.player; console.log('player core', player); })
说明
complete
事件)触发后从SDK实例的player属性获取播放器内核。获取播放器内核的属性,以获取当前播放时间为例,代码示例如下所示。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, url: 'xx.mp4' }); // ... // 获取当前的播放时间 const currentTime = playerSdk.player.currentTime;
调用播放器内核的方法,以调用播放方法为例,代码示例如下所示。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, url: 'xx.mp4' }); // ... // 手动调用播放 const btn = document.getElementById('play_btn'); btn.addEventListener('click', (e) => { playerSdk.player.play(); })
VePlayer 结合视频点播服务,可以实现视频 Vid+PlayAuthToken
播放。
如下为您介绍实现视频 Vid+PlayAuthToken
播放的操作步骤。
首先,在服务端通过 Vid
生成播放使用的 playAuthToken
。playAuthToken 除了包含视频 Vid 等信息,还可以通过参数指定视频分辨率、转码类型、封装格式等信息。
说明
获取的视频,默认是 mp4
格式非加密视频。如果 playAuthToken
没有指定格式、分辨率等信息,可以在 reqParams
中通过 Format
和 Definition
来透传参数,可传参数详见获取播放地址。
在 VePlayer 实例化参数中传入getVideoByToken
。
详细的参数说明如下所示。
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
playAuthToken | String | 是 | 服务端生成的临时 playAuthToken 。token 有一定有效期,过期后需服务端重新生成。 |
playDomain | String | 否 | 请求地址接口域名。默认值为 '//vod.volcengineapi.com' |
reqParams | Object | 否 | 可携带 aid 等透传参数。例如,
说明 通过 |
definitionMap | Object | 否 | 定义清晰度文案的映射。例如,
说明
|
defaultDefinition | String | 否 | 默认清晰度,对应获取播放地址接口返回的清晰度,取值如下:
|
needPoster | Boolean | 否 | 前提有封面图。是否启用控制台设置的封面图 |
needThumbs | Boolean | 否 | 前提是已转码并生成雪碧图。是否启用控制台设置的雪碧图 |
needBarrageMask | Boolean | 否 | 前提是已转码并生成蒙版弹幕。是否启用控制台设置的蒙版弹幕 |
keyToken | Boolean | 否 | HLS 标准加密播放所用的 keyToken |
配置参数的代码示例如下所示。
const playerSdk = new VePlayer({ id: 'mse', width: 800, height: 500, getVideoByToken: { playAuthToken: '临时playAuthToken', // 需要从服务端临时获取 definitionMap: { 'original': { definition: 'ori', definitionTextKey: 'ORI' }, '360p': { definition: 'ld', definitionTextKey: 'LD' }, '480p': { definition: 'sd', definitionTextKey: 'SD' }, '720p': { definition: 'hd', definitionTextKey: 'HD' } } }, languages: { 'zh': { ORI: '原画', LD: '流畅', SD: '标清', HD: '高清' } } });
VePlayer 会通过点播服务自行获取视频播放地址,默认以符合条件的第一个地址作为播放地址,并会自动设置清晰度列表。
如果您需要自行处理视频信息,可以在播放器实例化之前,调用 VePlayer 提供的 Service
方法,获取视频播放地址。实现的代码示例如下所示。
const Service = window.VePlayer.Service; const playAuthToken = '临时playAuthToken'; // 需要从服务端临时获取 Service.url(playAuthToken, '//vod.volcengineapi.com').then((res) => { // 业务侧处理视频信息 const player = new VePlayer({ id: 'mse', width: 800, height: 500, url: res.PlayInfoList[0].MainPlayUrl, }); }).catch((e) => { console.log(e); });
如果需要切换视频源,可以传入新的 playAuthToken
进行切换,示例代码如下所示。
playerSdk.switchAuthToken({ playAuthToken: 'new playAuthToken' });
PlayAuthToken
具有一定的有效时间,建议在需要播放时获取使用。如果 PlayAuthToken
过期,视频将无法起播。VePlayer 提供 onTokenExpired
事件,可以在 token
过期时自动更新 token
,代码示例如下所示。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, getVideoByToken: { playAuthToken: 'video_playAuthToken' }, onTokenExpired: () => { return new Promise(resolve => { // 调用您的接口获取新的 playAuthToken getNewToken().then(res => { resolve({ playAuthToken: 'new playAuthToken', // 新的 playAuthToken keyToken: 'new keyToken' // 'hls 加密播放时传入新的 keyToken' }) }) }); } });
说明
onTokenExpired
要求返回为 getVideoByToken 类型的 Promise 异步函数。
VePlayer 提供播放质量上报功能,可以监控和上报播放量、播放失败率和首帧时间等指标。接入播放质量上报功能后,您可以在视频点播控制台的质量平台查看各个播放质量指标的详细情况。
如需接入播放质量上报功能,您需在播放器实例化的 options
参数中传入 vodLogOpts
。示例代码如下:
const player = new VePlayer({ id: 'video', width: 600, height: 400, url: "https://demo.vod.com/xxx.mp4", vodLogOpts: { line_app_id: XXXX, // 【必选】该值为 int 类型,接入视频点播的SDK应用 ID ,可以从点播控制台-点播SDK-应用管理获取。 line_user_id: 'XXX', // 用户 ID, String 或者 int 类型,不传入将是一个根据用户浏览器随机生成的值。 tag: '普通视频', // 业务标签,对应业务类型,用于区分业务中不同的场景,方便后续进行多维度分析。 } });
vodLogOpts
各项配置参数如下所示。
参数 | 类型 | 默认值 | 是否必选 | 描述 |
---|---|---|---|---|
line_app_id | Number | - | 是 | 视频点播应用 ID。您可在视频点播控制台 > 点播SDK > 应用管理页面获取应用 ID(App ID)。 |
line_user_id | String | - | 否 | 用于识别单一用户的 ID,可在 QoE 指标中用于用户维度的筛选。 说明 强烈建议您使用与业务相关的用户 ID,以便在发生播放错误时通过点播控制台 > 质量平台 > 单点追查功能排查故障。 用户 ID 对应于单点追查功能的查询条件中的设备 ID 维度。如不设置用户 ID,VePlayer 将根据用户浏览器随机生成一个值,该值会在浏览器端缓存。 |
tag | String |
| 否 | 业务标签。对应于质量平台上的业务类型维度,其作用是区分业务中的不同场景,以便进行多维度分析。举例来说,假设您的应用中包含短视频和长视频两个场景,则可分别将 说明 如需自定义配置 |
subtag | String | - | 否 | 自定义子标签。对应于质量平台上的自定义标签维度,与 tag 配合使用,可用于区分同一业务类型下更为细分的音视频类型,比如加密视频、非加密视频、音频等。 |
codec_type | String |
| 否 | 视频解码器类型名称。取值如下:
|
maxQueueCount | Number | 5 | 否 | 最大队列日志数。 |
您可通过 playerSdk.player.state
获取播放器当前所处的播放状态。示例代码如下所示。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, url: 'xx.mp4' }); // 获取播放状态 const playerState = playerSdk.player.state;
播放状态枚举值的详细说明如下表所示。
名称 | 数值 | 描述 |
---|---|---|
ERROR | 0 | 播放出现错误。 |
INITIAL | 1 | 初始化。 |
READY | 2 | 配置、事件、插件等均已经完成初始化、绑定和实例化。 |
ATTACHING | 3 | 进入媒体对象挂载阶段。 |
ATTACHED | 4 | 媒体对象已经挂载到了 DOM 中。 |
NOTALLOW | 5 | 播放被阻止。 |
RUNNING | 6 | 已经成功起播进入播放流程。 |
ENDED | 7 | 播放结束。 |
DESTROYED | 8 | 播放器内核实例已被销毁。 |
设置音量包括音量大小调节和静音设置。VePlayer 默认 UI 中自带音量设置控件,您可自行调节音量或者设置静音。
如果自定义 UI,可以通过以下方法实现。
设置音量的代码示例如下所示。
// 配置音量,实例化时传入 volume 参数 const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, volume: 0.2, url: 'xx.mp4' }); // 设置音量,实例的 player 进行设置 playerSdk.player.volume = 0.2;
设置静音的代码示例如下所示。
playerSdk.player.muted = false;
在点播场景下,VePlayer 默认 UI 中自带倍速播放设置控件。您可以根据需要调节播放速度,默认提供 0.5x、0.75x、1x、1.25x、1.75x、2x 的倍速选项。
如果有其他速度设置需求。可调用以下方法,实现的代码示例如下所示。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, url: 'xx.mp4' }); // 播放倍速设置 playerSdk.player.playbackRate = 3;
获取当前播放速度,实现的代码示例如下所示。
const playbackRate = playerSdk.playbackRate
VePlayer 提供清晰度切换控件,支持用户自行切换不同清晰度的视频。具体效果如下图所示:
为实现清晰度切换功能,您需要准备同一视频的不同清晰度版本。您可以通过视频点播控制台的媒体处理功能获取同一视频的不同清晰度版本,具体操作请见视频转码模板。
不同的播放模式下,显示清晰度切换控件的实现方式有所不同。
如果您使用 Vid+PlayAuthToken 方式播放,则只需设置 playAuthToken,不限定清晰度 、Definition
对应签发参数,并确保控制台中有对应各个清晰度的转码产物,VePlayer 会自动展示清晰度切换控件。如果您需要自定义各清晰度对应的文案,可传入 definitionMap
。示例代码如下:
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, getVideoByToken: { playAuthToken: 'yourplayAuthToken', definitionMap: { 'original': '原画', '360p': '流畅', '480p': '标清', '720p': '高清', '1080p': '蓝光·', }, }, });
在以下仅有单个清晰度视频的场景中,VePlayer 默认不会显示清晰度切换控件:
实例化参数中只设置了 url
地址。
playList
中只设置了一路流。
Vid 模式播放时服务端只返回了一路流。
如果您仍然期望显示清晰度切换控件,可将实例化参数 alwaysShowDefinition
设为 true
。此外,如果您还需自定义该清晰度对应的文案,不同的播放模式下,实现方式有所不同。示例代码如下:
使用 Vid+PlayAuthToken 方式播放的示例代码如下:
const playerSdk = new VePlayer({ id: 'video', width: 640, height: 360, // 设置单个清晰度时也显示清晰度切换控件 alwaysShowDefinition: true, getVideoByToken: { playAuthToken: 'yourplayAuthToken', definitionMap: { '480p': { definitionTextKey: 'HD' }, }, languages: { 'zh': { // 自定义 HD 对应的文案 HD: '超清', }, });
在点播场景下,播放器参数 loop
设置为 true
,即可开启循环播放。实现的代码示例如下所示。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, loop: true, url: 'xx.mp4' });
自动播放是指在用户没有主动交互(如鼠标点击、手指触摸)的情况下,通过 autoplay
配置、JavaScript 代码调用 play()
方法,或者定时器、Promise 回调、事件监听等方式,在页面加载完成后自动启动视频播放的功能。这种功能允许视频在页面加载后立即开始播放,而无需用户手动点击播放按钮。
由于浏览器策略的限制,自动播放并非总能成功。浏览器从用户角度考虑,认为网页或应用程序没有警告自动发出噪音可能会令人讨厌、不便或令人反感,因此通常仅允许在特定情况下进行自动播放。
VePlayer 提供 autoplay
、autoplayMuted
、enableDegradeMuteAutoplay
和 enableUserActionAutoplay
四个自动播放相关的配置,详见接口说明。但是自动播放能否成功,在不同浏览器环境中还需要满足以下条件。
根据最新的 PC 端浏览器策略,允许自动播放至少需要满足以下任意条件:
具体请见 Google Chrome 和 WebKit 的自动播放策略。
音频被静音或其音量设置为 0。
以下条件允许自动播放:
用户和网页已有交互行为(包括点击、触摸、按下某个键等等)。
交互行为的回调中执行
play()
的上下文中必须能跟踪到真实的用户交互行为。伪造的用户交互行为不被接受。
网站已被列入白名单,如果浏览器确定用户经常与媒体互动,就会被列入允许自动播放的白名单,有时也支持用户自行设置。
说明
您可以在 chrome://media-engagement/
查看网站的 MEI 评分。因为各个用户的浏览器评分不一致,所以会出现同一个网站有的用户能自动播放,有的不能,但随着用户与网站交互增多,评分会随之升高,也就允许自动播放了。一些访问量较大的视频网站,例如腾讯视频、bilibili、YouTube,因为网站访问者与其交互较多且大多数允许自动播放,会被 Chrome 的算法自动加入自动播放白名单,详见 Autoplay Pre-Seeding in Chrome。
顶部框架可以将自动播放权限委派给其 iframe,以允许自动播放声音。
H5 和移动端 WebView 上默认禁止有声音的自动播放。您可以选择自动静音播放,示例代码如下:
const playerSdk = new VePlayer({ // ... autoplay: true, autoplayMuted: true, // enableDegradeMuteAutoplay: true, // 开启自动降级静音播放,即有声音播放不支持时自动降级到静音自动播放 });
说明
需要注意在以下情况中,自动静音播放也不能生效:
iOS 端低电模式下,即使添加上 WebView 自动播放参数、或者是默认静音也都无法自动播放,因为播放视频被系统认定为耗能行为。
由于安卓微信 WebView 的自动播放策略调整,在安卓微信下,禁止任何方式的自动播放。
如果是在业务方可控的 WebView 上运行网站应用,还需开启 WebView 自动播放相关配置以实现自动播放。
Android 设置 setMediaPlaybackRequiresUserGesture,示例代码如下:
myWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);
iOS WKWebView 设置 mediaTypesRequiringUserActionForPlayback,示例代码如下:
[self.webvie mediaTypesRequiringUserActionForPlayback:NO];
您可以通过以下方式判断自动播放是否成功。
通过 JavaScript 代码调用 play()
方法实现自动播放不一定能成功。通常来说可以根据 play()
返回的 Promise 操作结果来判断是否成功:
resolve
的 Promise 结果。NotAllowedError
错误且状态为 rejected
的 Promise 结果。示例代码如下:
let startPlayPromise = playerSdk.player.play(); if (startPlayPromise !== undefined) { startPlayPromise.catch(error => { if (error.name === "NotAllowedError") { // TODO Do something when not autoplay success } else { // Handle a load or playback error } }).then(() => { // Start whatever you need to do only after playback // has begun. }); }
您可以监听 Web 点播 SDK 的以下事件来判断自动播放是否被阻止:
autoplay_was_prevented
: 自动播放被阻止。autoplay_failed
: 自动播放失败。示例代码如下:
const playerSdk = new VePlayer({ // ... autoplay: true, }); playerSdk.on('autoplay_was_prevented', () => { // TODO something console.log('自动播放被阻止'); });
如果是默认静音自动播放,非用户行为下设置播放器
muted
属性为true
时(playerSdk.player.muted = false
),在不支持有声音自动播放的浏览器环境下,浏览器会强制视频暂停。
设置 rotate
,配置使用的旋转插件。您点击旋转按钮后,视频会旋转 90 度。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, url: 'xx.mp4', // 视频旋转按钮配置项,默认值:{ innerRotate: false, clockwise: false } rotate: { innerRotate: true, //只旋转内部 video clockwise: false // 旋转方向是否为顺时针 } });
注意
当 innerRotate
为 false 时,播放器的宽高需要与视频的分辨率一致。
VePlayer 支持 VTT 格式的外挂字幕。你可通过 Subtitle
参数设置字幕列表,可实现字幕切换,示例代码如下所示。
说明
字幕的具体配置项详情请参见 ISubtitleConfig。
const playerSdk = new VePlayer({ id: 'mse', url: "https://xx.mp4", width: 600, height: 400, plugins: [VePlayer.Subtitle], Subtitle: { isDefaultOpen: true, list: [ { "url": "https://字幕1.vtt", "text": "中英", "isDefault": true }, { "url": "https://字幕2.vtt", "text": "中日", "isDefault": false } ] }, });
VePlayer 可实现记忆播放的功能,可以在您上次观看视频离开后的时间点继续播放。传入 MemoryPlay
配置项,为视频配置唯一的 id: memoryId
,即可实现记忆播放。代码示例如下所示。
const playerSdk = new VePlayer({ id: 'mse', url: "https://xx.mp4", width: 600, height: 400, plugins: [VePlayer.MemoryPlay], MemoryPlay: { memoryId: 'example_memory_id' }, });
播放器默认使用浏览器的 localStorage API 存储播放时间,即默认情况下不能实现跨端跨平台共享存储记忆的播放时间点。
如果需要通过服务共享播放时间点,实现的方式如下所示。
getTime
和 saveTime
两个函数;getTime
要求入参为 memoryId
,返回为时间的同步或异步函数;saveTime
要求入参数可接受 memoryId
和时间的函数。实现的示例代码如下所示。
const playerSdk = new VePlayer({ id: 'mse', url: "https://xx.mp4", width: 600, height: 400, plugins: [VePlayer.MemoryPlay], MemoryPlay: { memoryId: 'example_memory_id', getTime: async (id) => { // ...异步处理 // const time = await getTimeApi(id); return time; }, saveTime: async (id, time) => { // 调用接口存储时间 } }, });
在页面被隐藏、播放器被销毁、或者页面卸载时,VePlayer 会存储播放时间点。
注意
页面卸载时,如果传入的 saveTime
为异步函数,不能保证函数中的接口能执行完成。
VePlayer 支持水平方向的视频镜像功能。如下示例代码,可以快速实现镜像功能。
const playerSdk = new VePlayer({ id: 'mse', url: "https://xx.mp4", height: 400, plugins: [VePlayer.MirrorPlugin], });
VePlayer 支持播放列表功能,即在给定一个视频列表后,按顺序自动播放列表中的视频。VePlayer 提供播放列表相关的 UI 以及“打开/隐藏播放列表”和“播放下一个视频”两个按钮。具体效果如下:
如需使用播放列表功能,您可在初始化播放器实例时设置 plugins
参数传入播放列表插件实例,再通过 playListPlugin
参数对播放列表功能进行初始化配置。示例代码如下:
说明
播放列表具体配置项请见 IPlayListConfig。
const playerSdkIns = new VePlayer({ id: 'video', width: 800, height: 600, // 注册播放列表插件 plugins: [VePlayer.playListPlugin], // 配置播放列表插件 playListPlugin: { list: [ { url: 'xx.demo.com/1.mp4', poster: 'xx.demo.com/1.jpg', vid: '67ghsadd8a78s9df8', title: 'Remember to bring a little simple everyday', }, { playAuthToken: 'demovideoplayAuthToken', poster: 'xx.demo.com/2.jpg', vid: '67ghsadd8a78s213df8', title: 'The night came quietly, with the heat and light', }, { url: 'xx.demo.com/3.mp4', poster: 'xx.demo.com/3.jpg', vid: '67ghsaddhh78s9df8', title: 'Watching a beautiful fireworks at night will make you feel good', }, { url: 'xx.demo.com/4.mp4', poster: 'xx.demo.com/4.jpg', vid: '67ghiodd8a78s9df8', title: 'Gentle and lazy sea breeze', }, ], }, });
此外,播放列表插件提供 API 和事件,具体说明如下:
以下示例展示了如何播放下一个视频:
// 播放下一个视频 playerSdkIns.getPlugin('playListPlugin').next();
下表列出播放列表插件支持的 API。
API 名称 | 类型 | 参数说明 | 返回值 | 描述 |
---|---|---|---|---|
next |
| 无 | 无 | 播放下一个视频。如果当前正在播放最后一个视频,则跳转至第一个视频。 |
prev | () => void | 无 | 无 | 播放上一个视频,如果当前正在播放第一个视频,则跳转至最后一个视频。 |
changeList |
| 播放列表数组 | 无 | 更新播放列表。 |
setIndex | (index: number) => void | 待播放视频的序号 | 无 | 播放指定视频。 |
以下示例展示了如何监听播放项变更:
playerSdkIns.on('play_list_item_change', data => console.log('play_list_item_change, current item: ', data), );
下表列出播放列表插件支持的事件。
事件****枚举值 | 参数 | 描述 |
---|---|---|
play_list_change | listItem[] | 播放列表更新。 |
play_list_item_change | listItem | 播放项变更。 |
播放器入参中传入 enableContextmenu
和 closeVideoStopPropagation
,取值同时设置为 true
,可在播放器上右键查看视频信息。实现的示例代码如下所示。
const playerSdk = new VePlayer({ id: 'mse', width: 600, height: 400, enableContextmenu: true, closeVideoStopPropagation: true, getVideoByToken: { playAuthToken: 'playAuthToken', }, });
MP4 视频播放时,在不优化视频 MOOV box 结构且不进行视频转码的情况下,通常起播较慢。VePlayer 支持以MSE形式播放 MP4 视频,该模式起播更快,支持缓存播放,从而节省流量,示例代码如下所示。
const playerSdk = new VePlayer({ id: 'video', width: 800, height: 500, url: 'xx265.mp4', enableMp4MSE: true });
说明
MSE 播放模式需要确认 mp4 地址,支持当前页面域名跨域请求,并且支持 range 请求,可以通过提交工单的方式配置跨域。
VePlayer 支持音乐播放器模式,具有音乐封面、音乐列表、循环播放、码率切换等功能。
传入 isMusic
参数设置为 true
即开启音乐播放器模式,以 URL 播放为例:
const playerSdk = new VePlayer({ id: "music", width: 640, height: 90, isMusic: true, url: "http://voddemo-play.volcvod.com/Solitude******4485191-0-d8d39b9e5d825bc516adc8b8df4d97d4", title: "Solitude", vid: "v02dfag10001cerdcarelauag2njv000", poster: "https://s1.ax1x.com/2023/01/05/pSAlSAS.jpg", });
效果如下图所示。
不同的播放模式下,音乐播放器模式的实现方式有所不同。
支持 VID + PlayAuthToken 形式播放,示例代码如下所示。
const playerSdk = new VePlayer({ id: "music", width: 640, height: 90, isMusic: true, title: "Final Touch/Hidden Agenda", poster: "https://s1.ax1x.com/2023/01/05/pSAQx78.jpg", getVideoByToken: { playAuthToken: 'eyJHZXRQbGF5SW******aWVzIiwiVG9rZW5WZXJzaW9uIjoiVjIifQ==', definitionMap: { 'highest': { definition: 'Highest quality', definitionTextKey: 'highest' }, higher: { definition: 'Higher quality', definitionTextKey: 'higher' }, medium: { definition: 'Medium quality', definitionTextKey: 'medium' }, }, }, languages: { zh: { medium: '普通音质', higher: '高音质', highest: '无损音质', }, en: { medium: 'Normal', higher: 'Higher', highest: 'Lossless', } } });
配置音乐播放的详细信息如下表所示。具体可参考接口说明中 IMusicConfig。
配置项 | 默认值 | 含义 |
---|---|---|
mode |
| 循环模式。取值如下:
|
preloadNext | true | 开启预加载下一曲功能,当前歌曲播放到一半或列表循环顺序发生改变时会提前请求下一曲并存储在 IndexedDB 中 |
offline |
| 是否支持播放后离线下载到本地
|
timeScale | 15 | 快进快退的时间跨度 |
abCycle | AB 循环配置对象
| |
list | [] | 播放列表 |
对应的相关属性的详细信息如下表所示。
属性 | 是否可读 | 是否可写 | 描述 | 示例 |
---|---|---|---|---|
musicMode | 是 | 是 | 当前播放模式
|
|
musicTimeScale | 是 | 是 | 快进快退时间跨度 |
|
musicList | 是 | 是 | 音乐播放列表 |
|
相关方法的详细信息如下表所示。
方法 | 描述 | 参数 | 返回 | 示例 |
---|---|---|---|---|
musicAdd | 向播放列表中加入歌曲 | 对象,具体可参考 IMusicListItem
| 无 |
|
musicRemove | 从播放列表中移除歌曲 | 歌曲列表中要删除歌曲对应的 Vid | 无 |
|
musicRandom | 随机获取播放列表中某一首歌曲 | 无 | 歌曲信息,具体可参考 IMusicListItem |
|
musicNext | 播放下一首歌曲 | 无 | 无 |
|
musicPrev | 播放上一首歌曲 | 无 | 无 |
|
musicSetIndex | 选择第 n 首歌曲 | Number 类型 | 无 |
|
musicForward | 歌曲快进timeScale秒 | 无 | 无 |
|
musicBackward | 歌曲后退 timeScale 秒 | 无 | 无 |
|
musicSetAbCycle | 设置 AB 循环 | 对象,具体可参考 IABCycle
| 无 |
|
musicRemoveAbCycle | 移除 AB 循环 | 无 | 无 |
|