我想有一些javascript代码修改元素的一些属性,这些属性正在作为媒体覆盖(smil驱动)的一部分播放。特别是,我对文本媒体叠加感兴趣,它会在播放某些音频时突出显示。我的问题有两方面:
答案 0 :(得分:1)
EPUB 3规范允许嵌入在EPUB容器内的JavaScript内容仅通过epubReadingSystem
对象与阅读应用程序“通信”。
不幸的是,规范要求仅暴露基本字段,如阅读系统的名称和版本,以及其脚本功能的探针(hasFeature
)。请参阅:http://www.idpf.org/epub/301/spec/epub-contentdocs.html#app-epubReadingSystem
特别是,没有IDPF辅助方式来获取媒体覆盖的状态(未启动/播放/暂停,哪个片段处于活动状态等)暴露给EPUB中嵌入的JS。
当然,从理论上讲,人们可能会发现特定阅读系统的“黑客”(特别是如果它依赖于GUI的GUI,比如Readium或iBooks),并且能够将这些信息路由到JS代码在EPUB内部(由阅读系统呈现)。但当然这种方法很脆弱 - 正如你之前对我自己rb_smil_emulator.js
的观察所知道的那样。
另一种可能性是监控DOM,跟踪应用于所有 SMIL片段的类的变化,但这种技术在时序性能/准确性方面可能会出现问题。