-
Notifications
You must be signed in to change notification settings - Fork 14
MUSE 5: FAQ
在本页面中你可以找到一些关于 MUSE Player 的常见问题和解决方案,这里收录了一些 MUSE 在生产环境中运用时对于不同的场景下的问题。
如果你在使用 MUSE 的过程中遇到其他该页面没有列出的问题,你可以到 issues 页面向我们求助,我们将尽力帮你解决它。
如果你发现、并自己尝试着解决了在使用本项目过程中的问题,欢迎在本页面中补充。假如该问题的解决需要修改项目代码,那么您也可以发起一个 pull request.
MUSE 5 基于 React 实现,在项目生成的 bundle 中,React + React-DOM + Redux 首先占据了将近 50% 的体积,这就导致 bundle 的体积偏大。作为项目的作者我也很绝望啊,我已经尽可能地采用各种奇技淫巧缩小了 bundle 的体积(不然原来是有将近 400K 的 T_T),然而 250KB 的体积似乎还是很难让人接受。虽然 250KB 对于现今较快的网速来说已经显得不是那么突兀了,如果你还是纠结体积的话,可以选用 MUSE 的 react-lite 版本。
从 5.2.1 版本开始,采用 react-lite 库的 bundle 将随着 react 版本一起被编译,位于 dist/assets/muse-player-react-lite.js
下。
react 版本采用的是 Facebook 官方原汁原味的 React 框架,react-lite 是第三方基于 react 的接口和理念去除了一些使用频率较少的东西的精简版框架。根据 react-lite 作者的说法,react-lite 可以很好地兼容原生 React API,并且能完美兼容 Redux. 就目前来看,react-lite 跑在为原生 React 写的代码上还是没有什么问题的。
react-lite 版本和 react 用的是同一个仓库,所以版本、新特性和 Bug 是同时更新 / 修复的。
如果硬要说还有什么别的区别的话,那么就是 React DevTools 无法显示该页面正在使用 React,不能装逼。
从 MUSE 5.2.0 版本之后可以。调用多次 MUSE.render()
即可,注意每个播放器都必须挂载在一个独立、专属的 DOM 节点上。
当然可以。但是为了完美兼容 PJAX 需要做一些微小工作,那就是在你离开页面的时候执行以下 MUSE.destroy()
方法,把当前页面的播放器实例都销毁,否则的话可能会报错,或者重新进入这个页面的时候发生一些奇怪的事情……
有。但就目前而言,插件机制并不完善。具体您可以看 wiki 中有关于 API 介绍的篇目,稍后也将会有一篇专门用于介绍 MUSE 功能扩展方法的 wiki。MUSE 的插件机制依赖接口实现,目前仅从需要和性能的角度设置了一些比较常用的接口,如果您有其他的开发需要,请提 issues 告诉我们。
能。MUSE 提供两种预设样式,分别叫 muse-layout-default
和 muse-layout-landscape
. 如果这两种样式不合您的口味,您可以自己自定义样式。具体请看 wiki 中的扩展篇目。
请提 issues 告诉我们。记得附上问题出现的 demo 页面。如果证实是 MUSE 自身的问题(因为大多数情况下都是你自己页面样式冲突的锅),我们会在下一个版本中修复。