iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
Modern Web

FlowNest系列 第 25

Day25_底部播放器上線

  • 分享至 

  • xImage
  •  

把背景音樂控制條改成「Spotify風格」的底部播放器(Dock)。
以前那條會蓋在內容上,現在變成固定在底部,不擋畫面,隨時操作。

https://ithelp.ithome.com.tw/upload/images/20251006/20168406CnwQJnQ5Ru.png

位置與版面

原本控制條固定在上方,手機上很容易壓到內容。
現在改放在底部,主要內容區自動預留一點空間,不會被播放器吃掉。
用了半透明的深色底+模糊效果,看起來像一層玻璃。


Dock結構(三個區塊)

  • 左側:小方塊封面(用曲目 id 自動產生漸層+首字母)、曲名、描述,右邊一顆綠色小圈代表「播放中」。
  • 中間:速度選擇(目前只是裝飾)、倒轉、上一首、播放、下一首、快轉、睡眠定時等圖示。
    只有播放/暫停能用,其他先灰掉加上提示文字。
    下方是一條進度條+左右兩邊的時間。
  • 右側:播放清單、裝置切換、全螢幕等圖示(先預留)。
    音量控制區用一條漸層條+百分比顯示。

互動

  • 播放鍵改成只有圖示,外圈有亮色漸層和微縮放的按壓效果。
  • 音量條用綠色漸層表示音量高低,支援滑動和鍵盤操作。
  • 進度條以 1000 個刻度映射播放位置,拖曳時先在前端預覽,放開才真的跳轉。
    如果是直播或沒有長度的串流,就會顯示「LIVE」並關掉進度條。
  • 沒有封面的曲目會用曲目 id 產生一組獨特的漸層+首字母作為替代。

播放狀態與時間處理

useBgm 新增了 currentTimeduration
透過一系列事件(timeupdateloadedmetadatadurationchangeended)即時更新畫面。

加上 seekTo(seconds) 函式,能安全跳轉指定秒數。
播放、暫停或換歌時,所有數值都會重新同步,避免顯示錯誤的時間。


上一篇
Day24_小調整UI與全域音樂控制
系列文
FlowNest25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言