ブラウザの中だけで完結させる構想

| No Comments | No TrackBacks

mugeneがある程度曲データをコンパイルできるようになって、mldspがそれなりにビジュアルに再生してくれるのであれば、これにMMLエディタを統合してしまえば、ちょっと便利なオーサリング環境が構築できるのではないかと思っている。デスクトップで実現するのであれば、エディタコンポーネントはちょいと心当たりがある。

しかし、それ以上に、web上で完結できるのであれば、それはそれでアリじゃないかと思い始めた。mldspはSilverlightアプリだから、ブラウザDOMへのインタラクティブなアクセスは可能だ。

その場合、ネックになるのはMIDIデバイスへのアクセスだ。FlashにもSilverlightにもMIDIデバイスのアクセスを許すAPIは無い(Flashであればustreamがユーザの承認のもとでWebCamにアクセスできるので、同じようにMIDIデバイスへのアクセスも可能なんじゃないかと考えたが、どうやらマイクとカメラだけらしい)。MIDIファイルを再生させるだけならembed要素などを使えば(uglyながら)可能だが、一時停止などSilverlightからの(Javascriptを介した)インタラクティブな操作ということになるとそうもいかない。

そこでまず思いついたのがHTML5のaudio要素だ。audio要素であれば、JavascriptからHTMLAudioElementを叩けば、再生や一時停止などが指示できる。もしかしてこれでmidiファイルがサポートされているのではないか、と期待して試してみたが、少なくともcontrols属性を付けて出てきたUIオブジェクトは、未サポートのメディアのものだった。そうすると、今度はカスタムメディアサポートをadd-onとして実装できないかというところに行き着くわけだけど、mozillaのMDCが落ちていていろいろ確認できない。

そしてもう一つの可能性に気づいた。Javaにはjavax.sound.midiというインターフェースがある。だから、Appletを作ってそこからMIDIファイルを再生するようにすればいいのではないか。AppletにはどうやらJavascriptを介した操作の仕組みがあるらしい(ほとんど知られていないそうだが)。MIDIデバイスへのアクセスについては、一度ユーザから認証を得る必要があるそうだが、それさえクリアできれば後は問題なくいけるようだ。

実現方法としては、NPAPIを調べてfirefoxのadd-onを作るより、Appletを書く方が簡単かもしれない(書いたこと無いけど)。ただ、今さらAppletかとも思うし、それならばNPAPIの勉強でもした方が面白いかもしれない。そもそも、カスタムメディアサポートがあるのかどうかも分からないのだけど。

No TrackBacks

TrackBack URL: http://veritas-vos-liberabit.com/noteon/mt-tb.cgi/56

Leave a comment

About this Entry

This page contains a single entry by note on published on August 16, 2009 1:00 AM.

条件コンパイル was the previous entry in this blog.

mugene 0.1 release is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.23-en