曲のソースのパラメーターを使用して、ページでJS関数を定義します。
function song(entry){
mySong.src=entry;
mySong.play();
document.getElementById("p2").innerHTML="Now Playing: " + entry;
}
PHPでは、リンクをエコーして、そのフォルダー内の各曲を再生することをお勧めします。
これを行う:
<?php
//Header("content-type: application/x-javascript");
if ($handle = opendir('/wamp/www/songs/')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo '<a href="javascript:void(0)" onclick="song(\'' . $entry . '\')">' . $entry . '</a><br />';
}
}
closedir($handle);
}
?>
これにより、ファイルのパス名が拡張子付きで表示されることに注意してください。表示を改善するには、php /js substr
/substring
およびexplode
/を使用して文字列を操作する必要がありますsplit
。
了解しました。指定された例で機能するようにコードを書き直しました。
JS(頭)
function song(entry){
var mySong=document.getElementById("song1");
mySong.src=entry;
mySong.play();
document.getElementById("p2").innerHTML="Now Playing: " + entry;
}
PHP + HTML(本文)
<?php
//Header("content-type: application/x-javascript");
$path = '/wamp/www/songs/';
if ($handle = opendir($path)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo '<a href="javascript:void(0)" onclick="song(\'' . $path . $entry . '\')">' . $entry . '</a><br />';
}
}
closedir($handle);
}
?>
<p id="p2"></p>
<audio id="song1" controls="controls">
<source src="" type="audio/mpeg" />
</audio>
これは、HTML5をサポートするブラウザで再生されるmp3ファイルで機能します。
<audio>
Firefoxはタグ内の.mp3再生をサポートしていないことに注意してください。Firefoxが<audio>のMP3ファイル形式をサポートしていない理由を参照してください。
したがって、このソリューション(を使用<audio>
)は、Chromeでのみ満足のいく結果をもたらします(オペラとサファリではテストされていません)。互換性を高めるために、別のソリューションにフォールバックすることをお勧めします。
IEおよびFirefoxとの互換性が必要な場合は、<embed>
:を使用してみてください。
JS
function song(entry){
var mySong=document.createElement('embed');
mySong.src=entry;
mySong.width='250px';
mySong.height='60px';
document.getElementById("song1").innerHTML= '';
document.getElementById("song1").appendChild(mySong);
document.getElementById("p2").innerHTML="Now Playing: " + entry;
}
PHP + HTML
<?php
//Header("content-type: application/x-javascript");
$path = '/wamp/www/songs/';
if ($handle = opendir($path)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo '<a href="javascript:void(0)" onclick="song(\'' . $path . $entry . '\')">' . $entry . '</a><br />';
}
}
closedir($handle);
}
?>
<p id="p2"></p>
<div id="song1"></div>
これは事実上クロスブラウザになりますが、Firefoxのプラグインのインストールを要求する場合があります。