我目前正在做一个将使用媒体覆盖的epub3项目。
我想在每个页面上添加2个按钮,一个用于播放歌曲,一个用于播放和无伴奏合唱版本的这首歌使用文本突出显示与媒体覆盖。
有没有什么方法可以通过javascript访问读取设备的控件来触发类似的事情?换句话说,我想通过点击一个按钮来启动朗读,而不是直接使用设备控件。
感谢您的帮助!
发布于 2016-12-08 16:05:03
简短的答案是:不,没有可靠的、跨平台的方法来做到这一点。(我所说的“跨平台”指的是“在任意阅读系统上都能工作”。)
长长的答案是: EPUB规范不要求阅读系统(RS)公开Javascript功能。对于那些具有JS功能的RS,EPUB规范并不要求它们支持对其状态的“操纵”。另外,EPUB规范要求每个内容文档(即XHTML文件)最多与一个SMIL文件相关联,而您需要创建两个文件:一个引用完整的音频文件,另一个引用无伴奏合唱音频文件。因此,在理论上,没有办法做你想做的事情。
在实践中,唯一提供JS句柄来控制媒体覆盖的RS是iBooks (请参阅iBooks资产指南)。但它只能在iBooks上工作,并且只适用于固定布局(预分页)的格式。
如果你想编写自己的媒体覆盖仿真JS库,你可以看看https://github.com/pettarin/rb_smil_emulator。但是,请注意,我本人不赞成使用它,因为它是一种非常脆弱的方法。
https://stackoverflow.com/questions/41020440
复制相似问题