9

javascript で一連の MIDI ノートを生成して再生したいと思います。多くのプラグインが MIDI をサポートしていますが、サポートされている "data:" URL は知りません。MIDI コンテンツを生成することは大したことではありませんが、このコンテンツをプレーヤーにフィードすることは重要です。誰でもこれを行う方法を知っています-一般的ではないにしても、少なくともQuickTimeのような特定のプラグインについては?

4

5 に答える 5

5

非常にきちんとした問題。私は最近、base64でエンコードされた画像を頻繁に使用しており、画像のエンコードには定期的にhttp://www.greywyvern.com/code/php/binary2base64を使用しています。MIDIファイルを変換してbase64テキストストリームをHTMLに変換しようとしたところ、Firefoxで問題なく再生されました(驚いた)。コードは次のとおりです(簡潔にするためにBase64ストリームを削除しています)。

<embed 
    autostart="true" 
    loop="false" 
    volume="100" 
    hidden="false" 
    src="data:audio/x-midi;base64,abc...."
></embed>

JSでバイナリイメージからbase64に移行できるかどうかはわかりませんが、MIDIから移行できるのではないかと思います。それは始まりです。

于 2010-05-12T14:59:39.113 に答える
2

私の次のブログ投稿をご覧になることをお勧めします。これは、クライアント側でやろうとしていることを正確に行うライブラリに関するものです。ただし、ブラウザー間での MIDI の再現性は、実際には一貫していないことに注意してください。

http://sergimansilla.com/blog/dinamically-generating-midi-in-javascript/

于 2010-11-09T10:05:12.777 に答える
1

最も簡単な方法は、MIDI データを PHP スクリプトなどに渡すことです。PHP スクリプトは入力を返します。次に、「data:your-mini-data」の代わりに「yourscript.php?your-midi-data」を使用できます。

于 2010-05-04T14:41:42.603 に答える
1

データ URL を使用した QuickTime は Firefox と Chrome の両方で動作します (最近のリリース、ベータ版はありません) 。quicktime の Web サイトQT_WriteOBJECTの指示に従う必要があります。不平を言う-必要ないかもしれません)、上記のリファレンスに記載されているようにリスナーを登録し、コールバックqt_loadを取得した後、document.movie1.SetURL(myDataURL)メソッドを呼び出します。データ url: で base64 エンコーディングを使用しました"data:audio/midi;base64,..."。(コンテンツはjavascriptによって生成されました)。Play()、Stop() など、すべてが驚くほどうまく機能しました。最も難しいのは、記念碑的なドキュメントを読むことです (「HTML」部分もあることに注意してください)。

于 2011-01-27T03:42:00.430 に答える
1

Javascript の使用に加えて (Sergi の投稿を参照)、MIDI フレームワークの一部を公開する私の Javascript to Java ブリッジで Java をフォールバック メソッドとして使用できます: http://mudcube7.blogspot.com/2010/08/dynamic-midi - ブラウザで生成.html

于 2010-11-10T08:10:41.297 に答える