他カテゴリ

APIを使って音楽を聴くきっかけを作ろう⑧

ヨコチ🦖UGOK's icon'
  • ヨコチ🦖UGOK
  • 2020/10/01 06:36

 

UGOKのヨコチ🦖です。

前回はCDジャケット画像を9個並べて表示させました。見た目は自分の作りたいものに近づいてきましたが、中身がまだまだできていません💧まだまだこれからですね💧がんばります。制作中のウェブアプリケーションについての概要は以下の記事をご覧ください。

 

 

今回やること

前回は、Spotify Web APIを使って日本トップ50という名前のプレイリストに載っている曲のCDジャケット画像のURLを使って、html上にCDジャケット画像を9個表示させました。

今回は、CDジャケット画像に含まれている曲を実際に試聴できるようにしたいと思います。

 

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <link href="css/style.css" rel="stylesheet" type="text/css">
</head>

<body>
  <!-- HTML -->
  <div id="app">
    <button @click="getAPIdata()">APIデータの取得</button>

    <ul v-if="appdata" id="appdata">
      <div v-for="n in 9">
        <div :id="img[n-1]" style="text-align: center">
          <img v-bind:src="img[n-1]" width="350px">
          <iframe height="50" width="350" :src="preview[n-1]" frameborder="0"></iframe>
        </div>
      </div>
    </ul>
  </div>

  <!-- JavaScript -->
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

  <script>
    let app = new Vue({
      el: '#app',
      data: function() {
        return {
          appdata: '',
          item: '',
          img: [],
          preview: []
        }
      },
      methods: {
        //ボタンを押すとAPIでとったデータを表示する
        getAPIdata: function() {
          const self = this; //fetch内ではthisが使えないので先に定数として設定しておく
          fetch('./list').then(function(res) { // /listというものに対する命令
            return res.json(); //responseをjson形式で返す
          }).then(function(data) {
            self.appdata = data; //appdataにとってきたデータを代入する
            self.item = data.items;
            for (let i = 0; i < 9; i++) {
              self.addURL = data.items[i].track.album.images[0].url;
              self.img.push(self.addURL);
            }
            for (let i = 0; i < 9; i++) {
              self.preURL = data.items[i].track.preview_url;
              self.preview.push(self.preURL);
            }
          });
        }
      }
    });
  </script>
</body>
</html>

曲の試聴リンクも同一のAPIから取得することができましたので、CDジャケット画像のURLを取得したときと同様の命令を書きました。

for (let i = 0; i < 9; i++) {

              self.preURL = data.items[i].track.preview_url;

              self.preview.push(self.preURL);

            }

 

 

曲の試聴リンクを取得するところまではすんなりできたのですが、実際に取得したリンクに飛ぶことができない・・・飛び方がわからない・・・と、ここで躓きました・・・😥<a>タグを使ってどうにかできないものか・・・<img>タグと同様にできないものか・・・と思ったのですができず・・・😥諦めて<iframe>を使用しました😥

 <div v-for="n in 9">

        <div :id="img[n-1]" style="text-align: center">

          <img v-bind:src="img[n-1]" width="350px">

          <iframe height="50" width="350" :src="preview[n-1]" frameborder="0"></iframe>

        </div>

      </div>

曲の試聴リンク先が黒背景ということもあり、インラインフレームのフレームを無くし、背景色も黒に変更し再生ボタンが変に浮かないように装飾も変更してみました。

 

 

 

 

実行結果

Content image
CDジャケット画像の下にある再生ボタンを押すと試聴できるようになった❕

なんかそれらしくなった気がしますね!!!(???)

実は、CDジャケット画像をクリックするとCDの詳細や曲の試聴を全部一気に表示するようにしようと思っていたのですが、新しい音楽に出会う「きっかけづくり」というこの制作の目的を考え直すと、第一にCDジャケット画像の表示、次に試聴できることが必要なのではないかという考えに至りました(先生の助言)。なのでひとまずこの2つを最優先に表示し、試聴したうえで気になったものに対しCDの詳細を表示させるようにしようと思います。

 

 

 

 

:今後について

曲の試聴ができるようになったので、次はそのCDに関する情報をCDジャケット画像をクリックした際に表示できるようにしたいと思います☺

 

 

:参考

 

Article tip 0人がサポートしています
獲得ALIS: Article like 6.15 ALIS Article tip 0.00 ALIS
ヨコチ🦖UGOK's icon'
  • ヨコチ🦖UGOK
  • @yoch
twitter @ugok_2

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
トラベル

梅雨の京都八瀬・瑠璃光院はしっとり濃い新緑の世界

Like token Tip token
216.64 ALIS
Eye catch
他カテゴリ

機械学習を体験してみよう!(難易度低)

Like token Tip token
124.82 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

Bitcoinの価値の源泉は、PoWによる電気代ではなくて"競争原理"だった。

Like token Tip token
159.32 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
121.79 ALIS
Eye catch
グルメ

バターをつくってみた

Like token Tip token
127.90 ALIS
Eye catch
ゲーム

【初心者向け】Splinterlandsの遊び方【BCG】

Like token Tip token
6.32 ALIS
Eye catch
他カテゴリ

SASUKEオーディションに出た時の話

Like token Tip token
35.87 ALIS
Eye catch
トラベル

わら人形を釘で打ち呪う 丑の刻参りは今も存在するのか? 京都最恐の貴船神社奥宮を調べた

Like token Tip token
486.35 ALIS
Eye catch
他カテゴリ

テレビ番組で登録商標が「言えない」のか考察してみる

Like token Tip token
26.20 ALIS
Eye catch
他カテゴリ

オランダ人が語る大麻大国のオランダ

Like token Tip token
46.20 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS