web-dev-qa-db-ja.com

Javascriptはオーディオブロブを作ります

私はhtmlオーディオタグをテストしていますが、YouTubeやvimeoのようにmake audio blob url'sを使用して"src"に追加して、オーディオの再生を開始します。

私はnew Blob()URL.createObjectURL()を使用してテストしてきましたが、使用方法がわかりません。

私は次のようなことをしたいです:<audio controls src"blob:null/8142a612-29ad-4220-af08-9a31c55ed078"></audio>

よろしくお願いします。

8

次のようなオーディオのbase64エンコードバージョンがあるとします。

data="data:audio/ogg;base64,T2dnUwACAAAAAAAAAADSeWyXAU9nZ1MAAAAAAAAAAAAA0nl";

1.最初に、base64ヘッダー(プリアンブル)を削除し、それを純粋なバイナリ形式にデコードします。これは、iPadの場合と同じ形式です。 githubで convertDataURIToBinaryborismus による優れたスニペットを使用できます

var binary= convertDataURIToBinary(data);

2.バイナリからBlobを作成します。オーディオのタイプを指定する

var blob=new Blob([binary], {type : 'audio/ogg'});

3.このBlobからblob urlを作成します

var blobUrl = URL.createObjectURL(blob);

これで、<source>src属性をこのblobのURLに置き換えるだけです。すでに純粋にデコードされたバイナリがある場合は、手順3を実行するだけです。

https://jsfiddle.net/sanddune/uubnnr0w/

19
Viney