0

ブラウザで小さな mp3 プレーヤーをコーディングしたいと思います。すべての mp3 ファイルはローカルに保存されます。

だから、私は使用する必要があります

var filePath = '...';
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.GetFile(filePath);

以降

var oFReader = new FileReader();
oFReader.readAsBinaryString(file);

しかし、オブジェクトが「readAsBinaryString()」をサポートしていないというエラーが表示されます。したがって、オブジェクト「ファイル」は、予想どおり、まったく同じオブジェクトではないと思います。

手伝っていただけませんか?ActiveXObject() と readAsBinaryString() を組み合わせるにはどうすればよいですか?

4

1 に答える 1

0

new ActiveXObject(...)常に「オートメーション オブジェクト」を返します。これは、DOM オブジェクトとは異なるタイプのホスト オブジェクトです。

具体的には、 BlobreadAsBinaryString型のオブジェクトをパラメーターとして期待します。これは、DOMファイルオブジェクトである可能性がありますが、オートメーション オブジェクトではない可能性があります。

ただし、この記事の執筆時点では、はHTML5 File API ドラフトreadAsBinaryStringから削除されています。

オーディオ ファイルを読み取ろうとする代わりに、HTML5<audio>タグを使用することをお勧めします。

<audio autoplay="autoplay">
    <source src="YOUR_FILE_PATH_GOES_HERE" type="audio/wav">
</audio>

HTML5 オーディオ タグ リファレンス: https://developer.mozilla.org/en-US/docs/HTML/Element/audio

お使いのブラウザが目的のオーディオ形式をサポートしているかどうかを確認してください。たとえば、すべてのブラウザが「mp3」をサポートしているわけではありません。ActiveX オブジェクトについて話している場合は、バージョン 9 以降の mp3 ファイルをサポートする必要がある Internet Explorer を使用していると思われます ( source )。

于 2013-02-20T00:21:57.387 に答える