search
他カテゴリ

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
Article registration Article registration
ヨコチ🦖UGOK's icon'
  • ヨコチ🦖UGOK
  • @yoch
twitter @ugok_2

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

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

CryptoChick 2020/03/07
Like token Tip token
159.32 ALIS
Eye catch
クリプト

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

昆布森ちゃん 2021/01/19
Like token Tip token
38.31 ALIS
Eye catch
他カテゴリ

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

Jimmy 2018/12/21
Like token Tip token
46.20 ALIS
Eye catch
ゲーム

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

暗号資産ジョシ校生 蟻巣 2021/07/07
Like token Tip token
6.32 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

nnppnpp(んぺー) 2021/09/08
Like token Tip token
46.60 ALIS
Eye catch
他カテゴリ

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

Taka 2021/01/22
Like token Tip token
35.87 ALIS
Eye catch
他カテゴリ

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

nonstop-iida 2020/03/04
Like token Tip token
124.82 ALIS
Eye catch
クリプト

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

大田コウキ 2021/04/06
Like token Tip token
947.13 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

kaya 2021/10/06
Like token Tip token
61.20 ALIS
Eye catch
トラベル

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

こすもす 2021/05/25
Like token Tip token
216.64 ALIS
Eye catch
他カテゴリ

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

ふたひい@web3 2020/05/16
Like token Tip token
114.82 ALIS
Eye catch
ビジネス

海外企業と契約するフリーランス広報になった経緯をセルフインタビューで明かす!

Semapho 2021/09/14
Like token Tip token
16.10 ALIS