Closed sora-ichigo closed 1 year ago
type SpotifyMusic = {
uri: string;
// 楽曲再生側に必要そうな情報を保持しておきたい
}
type Props = {
spotifyMusic: SpotifyMusic;
onChange: (spotifyMusic: SpotifyMusic) => void);
}
const SpotifyMusicSelect: React.FC<Props> = (props) => {
// いい感じにSpotify楽曲の検索・選択ができるように作る
return ...
}
こんな感じのコンポーネントを作って、
// Project詳細画面
const ProjectShowPage: React.FC = () => {
const [projectSpotifyMusic, setProjectSpotifyMusic] = useState<SpotifyMusic | null>(null)
return (
<>
...
<SpotifyMusicSelect spotifyMusic={projectSpotifyMusic} onChange={setProjectSpotifyMusic} />
...
</>
)
}
こんな感じで Project 詳細画面から呼び出せればいい?
from https://github.com/youngeek-0410/hacku-kosen-2022-frontend/issues/4#issuecomment-1345447194
type SpotifyMusic = {
uri: string;
// 楽曲再生側に必要そうな情報を保持しておきたい
}
📝後でちゃんと調べる
📝 track = song
https://github.com/youngeek-0410/hacku-kosen-2022-frontend/issues/4#issuecomment-1345447868 の続き
~https://developer.spotify.com/documentation/web-playback-sdk を使う~
→ こいつは premium user しか使えないらしい(そのユーザのライブラリetc..を再生してくれる感じ)
track のなかに preview_url
という 30s だけ音楽を流せるデータがあったので今回はこれを使えば良さそう。
今回必要なデータになるのは以下のもの
次に実際にAPIを叩いてみて track のどこを取れば上記のデータが得られるのか調査する
↑ を見てみると以下のフィールドから欲しい情報がそれぞれ取得できそうだった。
track.name
track.external_urls.spotify
track.preview_url
track.album.name
track.album.images[0].url
track.album.artists[0].name
track.artists[0].external_urls.spotify
持つべきデータは決まっているので、予想で書く https://github.com/youngeek-0410/hacku-kosen-2022-frontend/issues/4#issuecomment-1345462722
✅ https://github.com/youngeek-0410/hacku-kosen-2022-backend/pull/17 で対応
こんな感じに検索できるようになった。 これを検索フォームに入力されるたびに実行する?
useSearchSpotifyMusic("おもかげ Vaundy")
+ Array [
+ Object {
+ "album": Object {
+ "image_url": "https://i.scdn.co/image/ab67616d0000b273cc4fbd1e1ad650bea96e1fc9",
+ "name": "裸の勇者",
+ },
+ "artist": Object {
+ "external_url": "https://open.spotify.com/artist/2IUl3m1H1EQ7QfNbNWvgru",
+ "name": "Vaundy",
+ },
+ "external_url": "https://open.spotify.com/track/6uqewERWZ1vzfCcin1zFIp",
+ "name": "おもかげ -self cover-",
+ "preview_url": "https://p.scdn.co/mp3-preview/7fa8d4a77dacfc513f2be625bbdb9bc48f0bbed4?cid=ce4decf85a2149efa2da06676bce5ec8",
+ },
+ Object {
+ "album": Object {
+ "image_url": "https://i.scdn.co/image/ab67616d0000b273ac1a5a83790ba13920affe1e",
+ "name": "おもかげ (produced by Vaundy)",
+ },
+ "artist": Object {
+ "external_url": "https://open.spotify.com/artist/45ft4DyTCEJfQwTBHXpdhM",
+ "name": "milet",
+ },
+ "external_url": "https://open.spotify.com/track/6ts1KCOudfDYXYfyWtq0k1",
+ "name": "おもかげ (produced by Vaundy)",
+ "preview_url": "https://p.scdn.co/mp3-preview/60fb39c321a2470f4ffd35ade9a5f8acdeef334c?cid=ce4decf85a2149efa2da06676bce5ec8",
+ },
+ Object {
+ "album": Object {
+ "image_url": "https://i.scdn.co/image/ab67616d0000b2737a910ed50c45df3713b5de71",
+ "name": "CHAINSAW BLOOD",
+ },
+ "artist": Object {
+ "external_url": "https://open.spotify.com/artist/2IUl3m1H1EQ7QfNbNWvgru",
+ "name": "Vaundy",
+ },
+ "external_url": "https://open.spotify.com/track/3lUOzabhWYyRImRszpJGOU",
+ "name": "CHAINSAW BLOOD",
+ "preview_url": "https://p.scdn.co/mp3-preview/e13a25161512163572e735e423bbcb2626c266b7?cid=ce4decf85a2149efa2da06676bce5ec8",
+ },
+ ]
https://github.com/youngeek-0410/hacku-kosen-2022-frontend/pull/5#issuecomment-1345551810 でいい感じにSpotifyを操作できる実装を作った。これであとはスタイルをいい感じに当てていくだけのはず、、
https://hacku-kosen-2022-frontend.vercel.app/spotify_search_demo で試せる
プロジェクト詳細画面に載せるやつ | 音楽選択コンポーネント |
---|---|
いい感じ Project に SpotifyMusic を設定できるようにしたい
https://www.figma.com/file/Yw7dlVVMVTuaNHoymdbr9U/YounGeek_HackU?node-id=0%3A1&t=Gy1GP4LZYccUw5G5-0