Files
sundynix-radio-mp/pages/player/index.wxml
T
2026-03-05 09:08:21 +08:00

118 lines
3.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- 播放器详情页 -->
<page-meta page-style="overflow:hidden; background:#1A1208;" />
<view class="player-page">
<!-- 状态栏占位(custom 导航模式必须手动留出状态栏高度) -->
<view style="height: {{statusBarHeight}}px; flex-shrink: 0;"></view>
<!-- 环境光背景 -->
<view class="bg-glow"
style="background: radial-gradient(ellipse at 50% -10%, {{domain.bgColor || '#FF9D42'}}44 0%, transparent 65%);">
</view>
<!-- 顶部:返回 + 标题 + 分享 -->
<view class="top-bar">
<view class="top-btn tap-active" bindtap="goBack">
<text class="top-back"></text>
</view>
<view class="top-title-wrap">
<text class="top-label">正在播放</text>
<text class="top-title">{{activeContent.title || '加载中...'}}</text>
</view>
<view class="top-btn tap-active" bindtap="onShare">
<text class="top-share">↑</text>
</view>
</view>
<!-- 中央 Banner:封面 ↔ 文案 -->
<view class="banner-area" bindtap="onBannerTap">
<!-- 封面视图(默认) -->
<view class="banner-cover {{showTranscript ? 'banner-hidden' : ''}}">
<!-- 涟漪声波(播放中才显示) -->
<view class="ripple-wrap" wx:if="{{isPlaying}}">
<view class="ripple-ring" style="animation-delay: 0s;"></view>
<view class="ripple-ring" style="animation-delay: 0.7s;"></view>
<view class="ripple-ring" style="animation-delay: 1.4s;"></view>
</view>
<!-- 大 emoji,无卡片背景 -->
<text class="cover-emoji {{isPlaying ? 'emoji-active' : ''}}">📻</text>
<!-- 频道名 -->
<text class="cover-channel">{{domain.name}}</text>
<text class="banner-hint">点击查看文案</text>
</view>
<!-- 文案视图 -->
<view class="banner-transcript {{showTranscript ? '' : 'banner-hidden'}}">
<scroll-view scroll-y enhanced show-scrollbar="{{false}}" class="transcript-scroll">
<text class="transcript-content" wx:if="{{activeContent.content}}">{{activeContent.content}}</text>
<view wx:else class="transcript-empty">
<text class="transcript-empty-icon">📄</text>
<text class="transcript-empty-text">暂无文案</text>
</view>
</scroll-view>
<text class="banner-hint">点击返回封面</text>
</view>
</view>
<!-- 日期 + like 同行,进度条上方 -->
<view class="date-like-row">
<text class="date-text">{{displayDate}}</text>
<view class="like-btn-inline tap-active" bindtap="onLike">
<text class="like-icon">♡</text>
</view>
</view>
<!-- 进度条 -->
<view class="progress-section">
<slider
class="progress-slider"
min="0"
max="{{duration}}"
value="{{currentTime}}"
activeColor="#FF9D42"
backgroundColor="rgba(255,255,255,0.12)"
block-size="14"
block-color="#FF9D42"
bindchange="onSliderChange"
bindchanging="onSliderChanging"
/>
<view class="time-row">
<text class="time-text">{{currentTimeText}}</text>
<text class="time-text">{{durationText}}</text>
</view>
</view>
<!-- 控制区:← 15s | 播放/暂停 | 15s → -->
<view class="controls-row">
<view class="skip-btn tap-active" bindtap="onBackward">
<text class="skip-arrow">↺</text>
<text class="skip-sec">15</text>
</view>
<view class="play-btn tap-active" bindtap="onTogglePlay">
<view wx:if="{{isPlaying}}" class="pause-group">
<view class="pause-bar"></view>
<view class="pause-bar"></view>
</view>
<text wx:else class="play-tri">▶</text>
</view>
<view class="skip-btn tap-active" bindtap="onForward">
<text class="skip-arrow">↻</text>
<text class="skip-sec">15</text>
</view>
</view>
<!-- 倍速选择面板 -->
<t-action-sheet
visible="{{showSpeedSheet}}"
items="{{speedItems}}"
bind:selected="onSpeedSelect"
bind:cancel="onSpeedCancel"
/>
</view>