2

140 本の (短い) ビデオを含む EPUB3 電子ブックを作成しています。showVideo.htmlHTML5 ビデオ要素を持つ別のファイルへのハイパーリンクを含むインデックス ファイルがあります。私の考えは、クエリ文字列を介して各ビデオファイル名をに送信し、showVideo.htmljavascript を介してクエリ文字列を読み取り、値をビデオ要素に入れることでした。

索引ファイルのリンク:

<a href="showVideo.html?unit=E1">Click to watch E1</a>

manifest次のコードを自分のcontent.opfファイルに書き込むと、これは実際に機能します。

<item id="vid_player" href="showVideo.html?unit=E1"
 media-type="application/xhtml+xml"/>

しかし、そのようにすると、140 項目をマニフェストに追加する必要があります。マニフェストでクエリ文字列を除外するだけでは機能しませ

<item id="vid_player" href="showVideo.html" 
 media-type="application/xhtml+xml"/>

皆さん、解決策はありますか?クエリ文字列メソッドは私のアイデアにすぎません。より良い手法があるかもしれません。

ありがとうございました

マーヴィン

4

3 に答える 3

1

JS を使用して動画の ID を解析しているので、クエリ パラメータの代わりにフラグメント識別子を使用してみてください。<a href="showVideo.html#E1">この方法では検証エラーは発生せず、JS で値を として取得できますlocation.hash

于 2013-07-05T00:43:11.410 に答える
1

そのために本当に JavaScript を使用したい場合は、Liza Daly が提案したことを試してください --- EPUB 3 電子ブックはおそらく iBooks (おそらく Readium と Kobo アプリ) でのみ動作することに注意してください。

ビデオを「選択」することが唯一の目的である場合は、ビデオごとに 1 つの XHTML ページを生成し、再生リストからそれらへのリンクを指定してみませんか? 結局、140 はマニフェストに追加される要素の大きな「数」ではありません。

または、次のようにs (関連付けられた CSS プロパティ、)videoplayer.xhtmlを使用して、単一の XHTML ページ、たとえば を作成することもできます。divpage-break-afterpage-break-before

<div class="videoplayer" id="video001">
 <video src="video001.mp4" ... />
</div>
<div class="videoplayer" id="video002">
 <video src="video002.mp4" ... />
</div>
...
<div class="videoplayer" id="video140">
 <video src="video140.mp4" ... />
</div>

so that your playlist will link to videoplayer.xhtml#video001, etc. Not using JavaScript, you have better chances it will work on multiple devices.

于 2013-07-05T07:26:33.087 に答える