min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

PHP+JavaScript で音楽プレイヤー実装

PHPで自作してるファイルマネージャー。日常的に使っている。

f:id:min117:20200505082144p:plain

「音楽再生」ボタンを押すと右下に「再生」「一時停止」ボタンが出てきて音声コントロールできるようにした。

 

ソース全体はhtml+php音楽プレイヤー部分はJavaScriptを使う。

 

まずhtmlとphpが併存できる環境にしている。

f:id:min117:20200505070501p:plain

拡張子は .php(ファイル名doLSglob.php)。

min117.hatenablog.com

min117.hatenablog.com

 

JavaScriptは使うがheadには特に何も書かない

f:id:min117:20200505070655p:plain

JavaScriptbody部の終わり、つまり</body> の直前に書くから。

 

body部の開始のところには onLoad() を書いてあとからJavaScriptで記述する関数 getDuration() を呼び出す。

f:id:min117:20200505070739p:plain

 

サーバにあるファイルは全てphpの glob() 関数で読んで配列$outputLINK に格納しておき

f:id:min117:20200505071016p:plain

 

それをforeach() で呼び出す。

f:id:min117:20200505070844p:plain

 

if(読み込み指定がmp3ファイルで かつ

読み込み指定されたmp3ファイル名が、今foreachで読み込んだファイル名と同じ)

だった場合に

f:id:min117:20200505071625p:plain

 

「再生」「一時停止」ボタンを表示するコードを追加した。

f:id:min117:20200505071722p:plain

1970行目の id="audiooo" で分かるように、htmlのidはテキトーな文字列(ソース全体で一意なものであればいい)で大丈夫

 

1963行目 HTML5のaudio タグではsrcにフルパス(httpで始まる)を指定しないとうまく動かないのは気づくのに苦労した。

  

player部分はこのサイトほぼそのまま使えた。

www.osaka-kyoiku.ac.jp

f:id:min117:20200505083848p:plain

 

最後、</body>の直前部分にJavaScript書く。

f:id:min117:20200505082859p:plain

2437行目の getElementById("audiooo") の部分で、1970行目の記述とリンクしている。

www.sejuku.net

 

iPhoneiPadからも使えて便利。

f:id:min117:20200505084054p:plain

 サーバ側でnamed.conf設定して自宅内からもグローバルIPで名前解決できるから家にいようが外出しようが同じように聴ける

min117.hatenablog.com

 

きゃりーぱみゅぱみゅなんとかぱんぱんラジオ」超おもしろい。

park.gsj.mobi

min117.hatenablog.com

 

 

HTML5のaudioタグで実装した音楽プレイヤーの部分は画面幅に併せて伸び縮みさせたい。

macOS

f:id:min117:20200505091858p:plain

iPhone

f:id:min117:20200505092020p:plain

これは<head>部分に <style> audio { width: 99%; } </style> と書けば実現できる。

f:id:min117:20200505092225p:plain

www.sebata.net

 

参考になった記事。

zxcvbnmnbvcxz.com