私はreact.jsとHTML5ウェブオーディオAPIを備えたmp3プレーヤーを構築しています。私は反応が新しく(2週間目)、JavaScriptには3年の経験があります。特定のフォルダからすべての(mp3)ファイルをreact.jsの配列にインポートするにはどうすればよいですか?
私はmp3ファイルをオーディオタグに(ロードラインを使用して反応環境内で)再生/ロードするために、アプリケーションにインポートする必要があります。オーディオタグのsrc)。次のように私はハードコード化された形で音を輸入していた瞬間にそうmy question here
を参照してください:
import React, { Component } from 'react';
import './music-player.css';
import mp3_file0 from './sounds/0010_beat_egyptian.mp3';
import mp3_file1 from './sounds/0011_beat_euphoric.mp3';
import mp3_file2 from './sounds/0014_beat_latin.mp3';
import mp3_file3 from './sounds/0015_beat_pop.mp3';
import mp3_file4 from './sounds/0027_falling_cute.mp3';
import mp3_file5 from './sounds/0028_feather.mp3';
import mp3_file6 from './sounds/0036_lose_cute.mp3';
import mp3_file7 from './sounds/0039_pium.mp3';
var mp3s = [];
mp3s[0] = mp3_file0;
mp3s[1] = mp3_file1;
mp3s[2] = mp3_file2;
mp3s[3] = mp3_file3;
mp3s[4] = mp3_file4;
mp3s[5] = mp3_file5;
mp3s[6] = mp3_file6;
mp3s[7] = mp3_file7;
const AudioPlayer = function(props) {
var mp3Src = mp3s[props.currentSoundIndex];
console.log(mp3Src);
return (<audio id="audio_player">
<source id="src_mp3" type="audio/mp3" src={mp3Src}/>
<source id="src_ogg" type="audio/ogg" src=""/>
<object id="audio_object" type="audio/x-mpeg" width="200px" height="45px" data={mp3Src}>
<param id="param_src" name="src" value={mp3Src} />
<param id="param_src" name="src" value={mp3Src} />
<param name="autoplay" value="false" />
<param name="autostart" value="false" />
</object>
</audio>
);
}
export default AudioPlayer;
完璧に動作していること、しかし、理想的に私はどちらかしたいと思います:
1インポートmp3ファイルを(後で配列を作成する代わりに)配列にまっすぐに挿入します。しかし私は、私がインデックスゼロに自分の名前を知らなくても、[ブラケット(インポート)
var mp3s = [];
import mp3s[0] from './sounds/0010_beat_egyptian.mp3';
import mp3s[1] from './sounds/0011_beat_euphoric.mp3';
2またはより良い輸入音フォルダからすべてのファイルで「予期しないトークン」のエラーが発生します、次のことを試してみましたアレイ。
大変助かりました。ありがとう。
これを試しましたか? forループを使用します。 'のために()mp3s [i] = mp3file + i }' }私はそれが完全な解決策ではないが、それが助けてくれることを願っています。しかし、あなたはまた別のループでそれをするためにあなたのMP3ファイルの名前を変更しようとすると、それらを呼び出すためにインデックスを使用する –
@ AdolfoOnrubiaありがとう。私はこれを試してみました(x = 0; x <8; x ++){mp3s [x] = 'mp3_file' + x;}しかし、 'mp3_file0' 'mp3_file1'などの文字列を私がインポートしたmp3ファイルオブジェクト。 – Sarah
パスだけでなく、ファイル自体をインポートしていますか? –