Skip to content

MUSE 5: FAQ

吟夢ちゃん edited this page Aug 25, 2017 · 1 revision

MUSE Player FAQ (Chinese Simplified)

在本页面中你可以找到一些关于 MUSE Player 的常见问题和解决方案,这里收录了一些 MUSE 在生产环境中运用时对于不同的场景下的问题。

如果你在使用 MUSE 的过程中遇到其他该页面没有列出的问题,你可以到 issues 页面向我们求助,我们将尽力帮你解决它。

如果你发现、并自己尝试着解决了在使用本项目过程中的问题,欢迎在本页面中补充。假如该问题的解决需要修改项目代码,那么您也可以发起一个 pull request.

MUSE 5 的体积为什么这么大????

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 版本和 react-lite 版本有什么功能上的区别?

react 版本采用的是 Facebook 官方原汁原味的 React 框架,react-lite 是第三方基于 react 的接口和理念去除了一些使用频率较少的东西的精简版框架。根据 react-lite 作者的说法,react-lite 可以很好地兼容原生 React API,并且能完美兼容 Redux. 就目前来看,react-lite 跑在为原生 React 写的代码上还是没有什么问题的。

react-lite 版本和 react 用的是同一个仓库,所以版本、新特性和 Bug 是同时更新 / 修复的。

如果硬要说还有什么别的区别的话,那么就是 React DevTools 无法显示该页面正在使用 React,不能装逼。

一个页面可以有多个 MUSE 实例吗?

从 MUSE 5.2.0 版本之后可以。调用多次 MUSE.render() 即可,注意每个播放器都必须挂载在一个独立、专属的 DOM 节点上。

播放器可以兼容 PJAX(pushState + AJAX) 吗?

当然可以。但是为了完美兼容 PJAX 需要做一些微小工作,那就是在你离开页面的时候执行以下 MUSE.destroy() 方法,把当前页面的播放器实例都销毁,否则的话可能会报错,或者重新进入这个页面的时候发生一些奇怪的事情……

MUSE 是否拥有插件机制?

有。但就目前而言,插件机制并不完善。具体您可以看 wiki 中有关于 API 介绍的篇目,稍后也将会有一篇专门用于介绍 MUSE 功能扩展方法的 wiki。MUSE 的插件机制依赖接口实现,目前仅从需要和性能的角度设置了一些比较常用的接口,如果您有其他的开发需要,请提 issues 告诉我们。

我能自定义 MUSE 的样式吗?

能。MUSE 提供两种预设样式,分别叫 muse-layout-defaultmuse-layout-landscape. 如果这两种样式不合您的口味,您可以自己自定义样式。具体请看 wiki 中的扩展篇目。

MUSE 在我的页面上无法正常显示(元素错位等)怎么办?

请提 issues 告诉我们。记得附上问题出现的 demo 页面。如果证实是 MUSE 自身的问题(因为大多数情况下都是你自己页面样式冲突的锅),我们会在下一个版本中修复。