■AD-BOOKサウンド

AD-BOOKの紹介で度々お断りしたのがサウンドの問題です。AD-BOOKではBGM、音声、効果音の3つの独立したサウンドを扱っています。しかし、当時のHTMLにおいては標準でのサウンドのサポートはされていませんでした。そのため、インターネットエクスプローラー(IE)等のブラウザは、独自に拡張して音を鳴らせるようにしていたのです。現在ではW3Cの勧告に従ってブラウザが設計されているため、当時のブラウザ毎に拡張していた独自機能はサポートされなくなりました。その結果、AD-BOOKのサウンドは現在の環境では機能しなくなったわけです。

では、当時は具体的にどのようにして音を鳴らしていたのでしょうか。IEを例に説明しましょう。ブラウザでは基本的にウインドウにHTMLで記述したページを書き出す作業をしています。そのほとんどは視覚に訴えるもので、文字や画像の表示が主たるものです。実はそれらと同じ形でサウンドを再生する機能を提供していたわけです。具体的にはHTMLドキュメントの中にサウンドファイルを再生するタグを埋め込み、ページを書き出す際にブラウザがそれを解釈して音声出力を実行していたわけです。例えば「sample.wav」と言う名前のファイルを再生したいとします。HTMLドキュメントの中では次のようなタグを記述しました。
*サウンドファイルはHTMLドキュメントと同じフォルダにあるとします。
<BGSOUND SRC="sample.wav" LOOP="infinite">
これはIEでしか通用せず、Firefox等ではまた別のタグになるわけです。従って、様々なブラウザでサウンドを共通に扱おうとすれば、ブラウザ毎に判別して専用のタグを解釈するようにしなければならなかったのです。このような独自タグは結果的にブラウザ標準化の障害になったことから、途中で廃止されることになりました。IEの場合はバージョン8か9で非採用になったと思います。

AD-BOOKの場合はサウンドを扱い易くするために、ブックコントローラーの中に再生機能を埋め込み、例えばBGMに関してはどの章でどのサウンドファイルを再生するかだけを指定すれば良いようにしています。また、音声や効果音についても、ページ中でそれぞれのコマンドを実行するように、Javascriptのタグの中で記述するだけで済みます。最終的にはブックコントローラーがコマンドを解釈して、サウンドタグを記述したページファイルを書き出すことでサウンド出力を可能にしているわけです。このサウンド専用のHTMLドキュメントも視覚的に表示されては困るので、幅を0にした見えないフレームに書き出しています。形式的には全く同じ3つのフレームを用意して、BGM、音声、効果音をそれぞれ書き出しているのです。

繰り返しますが、現在はこの方法ではサウンドを出力できないため、別の方法で実現する以外にありません。調べてみたところ、現在のHTML5ではサウンド再生のためのaudioタグが用意されているようです。つまり、このタグを使えば現在でもサウンド出力が可能なはずです。また、任意のタイミングで音を出そうとすれば、Javascriptでaudioタグを書き出すようにすれば良いので、AD-BOOKのプログラムを少し変更すれば対応可能になると思われます。しばらくHTMLの世界から離れていたので対応は困難かと思っていましたが、意外にも簡単に修正はできそうです。少なくとも実現の可能性が高いAD-BOOK「ROOTS」で、再びサウンドをサポートできるか検討してみようと思います。

<追記(2022.3.10)
AD-BOOKシリーズの1つであるAD-SoundPlayerでAudioタグによるテストを試みたところ、サウンド再生ができることがわかりました。ただし、元はMIDIファイル再生用プレーヤーでしたが、Audioタグではこのファイル形式はサポートしないため、再生可能な形式の中から現在主流のMP3を新たなターゲットにします。なお、現在のHTMLやJavascriptルールでは色々と不具合(特に表示の面で)が目立つため、プログラムの全面的な改訂が必要です。ブラウザ間の互換性問題等も大分解消されていることから、改めて修正作業を進めることにしました。久しぶりの大改修になりますが、AD-SoundPlayerとROOTSを復活させられれば、このコーナーで紹介したいと思います。