2016-12-07 47 views
0

我目前正在使用將覆蓋媒體的epub3項目。通過javascript(epub3媒體覆蓋)訪問閱讀系統控件

我想在每個頁面上添加2個按鈕,其中一個用於播放歌曲,另一個用於播放和使用帶媒體重疊的文本高亮顯示的該歌曲的無伴奏版本。

是否有任何方法通過JavaScript訪問閱讀設備控件觸發類似的東西?換句話說,我想通過單擊按鈕而不是直接使用設備控件來朗讀。

謝謝你的幫助!

回答

0

簡短的回答是:不,沒有可靠的,跨平臺的方式來做到這一點。 (通過「跨平臺」我的意思是「適用於任何任意閱讀系統」)。

長的答案是: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