通过javascript(epub3媒体覆盖)访问阅读系统控件

问题描述:

我目前正在使用将覆盖媒体的epub3项目。通过javascript(epub3媒体覆盖)访问阅读系统控件

我想在每个页面上添加2个按钮,其中一个用于播放歌曲,另一个用于播放和使用带媒体重叠的文本高亮显示的该歌曲的无伴奏版本。

是否有任何方法通过JavaScript访问阅读设备控件触发类似的东西?换句话说,我想通过单击按钮而不是直接使用设备控件来朗读。

谢谢你的帮助!

简短的回答是:不,没有可靠的,跨平台的方式来做到这一点。 (通过“跨平台”我的意思是“适用于任何任意阅读系统”)。

长的答案是:EPUB规范不要求读取系统(RS)公开Javascript功能。对于那些具有JS功能的RS,EPUB规范并不要求它们支持对其状态的“操纵”。此外,EPUB规范要求每个内容文档(即XHTML文件)最多与一个SMIL文件相关联,而您需要创建两个:一个引用完整的音频文件,另一个引用capella音频文件。所以,在纸上,没有办法做你想做的事。

实际上,提供JS句柄来控制媒体叠加层的唯一RS是iBooks(请参阅iBooks资产指南)。但它只适用于iBooks,并且只适用于固定布局(预分页)演绎。

如果您想编写自己的Media Overlay仿真JS库,您可以查看https://github.com/pettarin/rb_smil_emulator。但请注意,我自己不赞成使用它,因为它是一种非常脆弱的方法。

+0

嗨阿尔贝托,非常感谢你的回答。 我检查了iBooks资产指南,并在我的按钮中添加了ibooks:readaloud =“startstop”,并找到了解决方案。 我需要有一个按钮来触发朗读功能,因为我想在它上面添加样式,而且这个解决方案,即使它只适用于iBooks(这正是我想要的),是完美的。 再次感谢! – Djullin