« 2007年10月 | トップページ | 2007年12月 »

2007年11月

[日記]アプレットと音声資源の問題

 アプレットで音声関係の資源を使用する時には、複数のアプレットが起動された場合の排他制御を考えなければなりません。これがアプリケーションであれば、同時に起動できるインスタンスを一つだけにするという対処方法もありますが、アプレットの場合はブラウザ上で動作するため、複数のブラウザウィンドウで開かれたり、複数のタブで開かれたりする事を妨げることはできないため、どうしてもこの問題から逃れることはできません。

 もっとも、この問題に気付いたのはつい先日のことなので、スライドショーアプレットもこの問題について未対応です。

 幸いスライドショーアプレットでは、音声関係の処理を一つのクラスで纏めて行っているため、このクラスに排他制御用のスタティックオブジェクトを作成すればマネジメントできそうです。

 となると問題は、どのようなマネジメントを行うかですが、とりあえずの素案として、アプレット上に音声制御権取得のためのインターフェイスを設けて、音声制御権を持たせるアプレットをユーザに選択してもらうというものを考えています。

| | コメント (0) | トラックバック (0)

[日記]スライドショーアプレットの次期バージョンは2.0としてリリース

 今回の改変でメソッドやパラメータが大幅に増えた事、制御の中心となるマネージャスレッドを全面改訂した事を考慮して、次期リリースはメジャーバージョンアップにする。

 また、ドキュメントも使いやすさと判りやすさ、特にHTML作成者へのアピール度を考慮して全面改訂する。

  • 使いやすさの対応策
    サイトメニュー、目次、記事をフレーム分割して記事へアクセスしやすくする。
  • 判りやすさの対応策
    サンプルは機能を示すものではなく具体的な用途を考慮した使用例を示すものにする。
    参考コードはサンプルページの雰囲気を壊すため、別ページにしてリンクするようにする。
  • アピール度の向上
    サンプルはHTML作成者が創作意欲を喚起されるように素材、構成を練り、ひとつの作品としても楽しめるようにする。

| | コメント (0) | トラックバック (0)

[Java]ホームページビルダー11の問題

 ホームページビルダー11でAPPLETタグを使用してアプレットを使用する場合、コードパラメータで指定するクラス名とアーカイブパラメータで指定するアーカイブ名が異なっていると、HTML保存時にコードパラメータで指定したクラス名をアーカイブパラメータに上書きするという問題がある。

 関連するアプレットをひとつのアーカイブに入れるのはごく普通のことであるし、ダウンロードを一回で済ませられるメリットもある。

 これを回避するにはコードベースを指定すればよい。

 ただし、「./」じゃあダメで、ドキュメントベース以外のディレクトリにアプレットアーカイブを配置する必要がある。

 先日のアンケートで問題点として指摘しいるのでそのうち対策されると思うが、それまでのつなぎ対策としてメモしておく。

| | コメント (0) | トラックバック (0)

[Java]ローカル環境でコードベース指定してAppletを使用する場合のポイント

 ローカル環境を前提としてアプレットを利用するケースでは、コード管理上の理由及びHTMLページ変更毎にアプレットがロードされることを防ぐために、アプレットモジュールを一箇所にまとめたい事がある。

 このようなケースでは、アプレットで使用するファイル類をコードベースディレクトリ以下に配置する。

 通常データファイルはドキュメントベースからの相対ディレクトリで指定するようにアプレットを作成するため、データファイルを指定する相対パス文字列がやや長くなるが、これでセキュリティ上の制約は回避できる。

| | コメント (0) | トラックバック (0)

[日記]備忘録

 ドキュメントの記述修正中にスライドショーアプレットのトランジションにスライドアウトを付け忘れていることに気付いたので要対応。

| | コメント (0) | トラックバック (0)

[日記]スライドショーアプレット1.3のブラッシュアップ終わり

 ブラッシュアップと一通りの動作確認終わり。

 ブラッシュアップの内訳

  1. トランジション中に画像を変更するとトランジションが乱れるため、トランジション終了まで画像の変更を保留。
  2. アプレットの起動(または終了)時にまれにマスターボリュームが0に設定される現象の対策として、これらのクリティカルゾーンではボタン、スライダー等のコントロールを無効化。

 ちなみに、1の保留はキュークラスを使用した命令待ち行列を作成し、トランジション中はトランジションとトランジション終了以外の命令を待ち行列の最後に回す仕組みで実現。

 次は、ドキュメントの修正作業。

| | コメント (0) | トラックバック (0)

[日記]スライドショーアプレット1.3ソース修正一段落

 スライドショーアプレットバージョン1.3のソース修正が一段落。

 本来はバージョン1.2だったんだけど、ソース修正中に、バージョン1.1で原因の判らなかった「トランジションをランダム指定すると数十回に一回の頻度でトランジションせずに画面遷移する不具合」の原因が判明したため、この不具合のみの対策版をバージョン1.2としてリリースし、進行中だった機能追加版のバージョンは1.3に変更。

 現在テスト中だけど、幾つか気になる点が出て来たので、もう少々追加修正(ブラッシュアップやね)が必要。

 主な変更点

  1. MIDIフォルダの全ての曲を連続、連続繰返し、ランダムに演奏する機能を追加。
  2. トランジションにプッシュスライド、スライドアウト、伸展縮小、縮小、ランダムBタイプ(遷移色指定がランダムにならない)を追加。
  3. 再生停止、モード変更を行う制御パネルアプレットを追加。
  4. 上記に伴うアプレットパラメータ、アプレットメソッドの変更。
  5. 旧バージョン用の互換パラメータ、メソッドの対応。

| | コメント (0) | トラックバック (0)

[Java]Appletから自クラスが格納されたJarファイル名を取得するには?

 Appletプログラムから自クラスが格納されたJarファイル名を取得するには、AppletクラスのgetParameterメソッドの引数に"archive"を指定して取得します。

 また、Jarファイル内のリソースにアクセスする場合のURLは、以下のようになります。

"jar:" + コードベース + Jarファイル名 + "!/" + リソースパス

| | コメント (0) | トラックバック (0)

[パソコン]メディアプレイヤーのMIDIボリューム問題

 Windowsのメディアプレイヤーには、MIDIを再生後、メディアプレイヤーを終了すると、MIDI出力ライン(SWシンセサイザー)のボリュームが0に設定されてしまうという問題があります。

 この問題は、MIDI再生機能を持つアプレットを作成しているときに、以前は再生していたMIDI音声が聞こえなくなっていた原因を調査して発覚しました。

 そこで、SWシンセサイザーのボリュームを調整するために、SWシンセサイザーのラインを探したのですが、なかなか見つかりません。

 結局、Javaからアクセスできるミキサーとその配下のラインの情報全てを出力するプログラムを作って、Sound MAX Digital Audioの配下にある複合ラインの一つが、SWシンセサイザーであることを突き止めました。

 ここまでくれば、あとはボリューム調整機能を実装するだけです。

 もちろん、メディアプレイヤーの問題を反面教師にして、主処理の前にボリュームレベルをバックアップし、終了処理でボリュームレベルを復帰するようにしたことは、言うまでもありません。

 しかし、メディアプレイヤーにも困ったものです。

| | コメント (0) | トラックバック (0)

« 2007年10月 | トップページ | 2007年12月 »