wav 文字列を html5 blob に変換することは可能ですか?
(クロスブラウザ互換のソリューションを探しているわけではありません。Chromeで動作する必要があるだけです)。
wavString = "RIFF WAVEfmt D¬Xdata ¦®µ¼ÃÊÐÖÜáæêïòõøúüýþþþþüûøöóïëçâÜ×ÑËĽ¶¯§ xph`YQJC<5/~)~#~~~~~~ ~~~~~~~~~~~~~~~~~~!~'~,~3~9~@~GNV^emu}¥¬´»ÂÈÏÕÛàåéîñõøúüýþþþþýûùöóðìèãÞØÒÌÅ¿¸°©¡zrjb~Z~S~K~D~=~6~0~*~$}}}}}
}.....a lot of ugly chars.....";
wavString を html5 オーディオ オブジェクトに変換でき、サウンドを再生すると wav サウンドを聞くことができます。
var wave = new Audio('data:audio/wav;base64,' + btoa(wavString));
wave.controls = true;
document.body.appendChild(wave);
しかし、私はそれから wav blob を作成することはできません。ここに私が試したものがあります: (私はタイプと blob 変数のすべての組み合わせを試しました):
var type = "audio/x-wav";
var type = "application/octet-stream";
var blob = new Blob([btoa(wavString)], {type: type});
var blob = new Blob(['data:audio/wav;base64,' + btoa(wavString)], {type: type});
var blob = new Blob([wavString], {type: type});
それらはどれも機能しません。ブロブを作成しますが、それらをサーバーに保存してwavファイルとして聞くことはできません。私がやりたいことは、wav ファイルとしてサーバーにエクスポートできる BLOB を作成することです。実際には、有効なwav blobをサーバーにエクスポートできますが、問題は実際にこのwavStringを有効なwav blobに変換することです。