| 1 |
- import{d as a,r as e,q as l,O as t,g as s,o as n,P as c,Q as u,R as o,K as i,y as r,c as d,w as v,i as f,b as _,e as p,f as y,h as k,z as h,t as g,l as m,m as C,C as w,j as b,F as x,k as I,D as $,J as P,T as S,U as M,M as R,V as q,N as T,H as U,W as A,X as F}from"./index-Co9nPWLO.js";import{u as j}from"./audio.DwsFIuQc.js";import{_ as N}from"./_plugin-vue_export-helper.BCo6x5W8.js";const z=N(a({__name:"index",setup(a){const N=j(),z=e(""),D=e(null),Q=e(""),E=e(!1),H=e(!1),J=e(!1),K=e(!1),L=e(!0),O=e(0),V=e(!1),W=e({title:"",description:"",imageUrl:"",link:""}),X=e("标准"),B=[{label:"标准",value:"标准"},{label:"高品质",value:"高品质"}],G=e(0),Y=e(0),Z=[{label:"15分钟",value:900},{label:"30分钟",value:1800},{label:"45分钟",value:2700},{label:"60分钟",value:3600},{label:"关闭定时",value:0}];let aa=null;const ea=l(()=>N.isPlaying),la=l(()=>N.currentTime),ta=l(()=>N.duration),sa=l(()=>N.playRate),na=l(()=>N.hasPrev),ca=l(()=>N.hasNext),ua=l(()=>N.loopMode),oa=l(()=>N.shuffleMode),ia=l(()=>N.playlist),ra=l(()=>N.currentIndex);let da=null;async function va(){await async function(){try{const a=await s(`/player/audio/${z.value}`);D.value=a,Q.value=a.albumName||"默认专辑"}catch(a){console.error("获取音频失败:",a),r({title:a.message||"音频不存在",icon:"none"})}}(),await async function(){try{const a=await s("/player/audio/list",{page:1,pageSize:100}),e=parseInt(z.value),l=a.list.findIndex(a=>(a.id||a._id)===e);l>=0?N.setPlaylist(a.list,l,!1):a.list.length>0&&N.setPlaylist(a.list,0,!1)}catch(a){console.error("获取播放列表失败:",a)}}(),await async function(){try{const a=await s(`/player/progress?audioId=${z.value}`);a&&a.progress>0&&(O.value=a.progress,a.progress>10&&(V.value=!0))}catch(a){console.log("获取播放进度失败:",a)}}(),await async function(){try{const a=await s("/user/preferences");a&&a.playSpeed&&N.setPlayRate(a.playSpeed)}catch(a){console.log("获取用户偏好失败:",a)}}(),function(){da&&clearInterval(da);da=setInterval(()=>{D.value&&N.currentTime>0&&fa()},5e3)}()}async function fa(){if(D.value&&!(N.currentTime<=0))try{await i("/player/progress",{audioId:parseInt(z.value),progress:N.currentTime,duration:N.duration})}catch(a){console.log("保存播放进度失败:",a)}}function _a(){O.value>0&&(N.seek(O.value),ea.value||N.togglePlay()),V.value=!1}function pa(){N.seek(0),ea.value||N.togglePlay(),V.value=!1}function ya(a){return`${Math.floor(a/60)}:${Math.floor(a%60).toString().padStart(2,"0")}`}function ka(){P()}function ha(a){N.seek(a.detail.value)}function ga(){D.value&&(N.currentAudio?N.togglePlay():N.play(D.value))}function ma(){na.value&&(N.playPrev(),D.value=N.currentAudio)}function Ca(){(ca.value||oa.value)&&(N.playNext(),D.value=N.currentAudio)}function wa(){N.toggleLoopMode()}function ba(){N.toggleShuffleMode()}async function xa(){if(D.value)try{const a=D.value.id||D.value._id,e=await s(`/favorites/check/${a}`);(null==e?void 0:e.isFavorited)?(await M(`/favorites/${a}`),D.value.isFavorite=!1,r({title:"已取消收藏",icon:"success"})):(await i("/favorites",{audioId:parseInt(a)}),D.value.isFavorite=!0,r({title:"已收藏",icon:"success"}))}catch(a){console.error("操作失败:",a)}}function Ia(){D.value&&(R({title:"下载中..."}),q({url:A(D.value.audioUrl),success:a=>{T(),200===a.statusCode&&U({title:"下载成功",content:"文件已下载到临时目录,请在文件管理器中查找",showCancel:!1})},fail:a=>{T(),console.error("下载失败:",a),r({title:"下载失败",icon:"none"})}}))}function $a(){J.value=!1,window.wx?window.wx.updateAppMessageShareData({title:W.value.title,desc:W.value.description,link:W.value.link,success:()=>{r({title:"分享成功",icon:"success"}),Ra("wechat")},fail:()=>{qa()}}):(r({title:"请使用微信打开分享",icon:"none"}),setTimeout(()=>qa(),1500))}function Pa(){J.value=!1,window.wx?window.wx.updateTimelineShareData({title:W.value.title,link:W.value.link,success:()=>{r({title:"分享成功",icon:"success"}),Ra("moments")},fail:()=>{qa()}}):(r({title:"请使用微信打开分享",icon:"none"}),setTimeout(()=>qa(),1500))}function Sa(){J.value=!1;const a=`https://service.weibo.com/share/share.php?title=${encodeURIComponent(W.value.title)}&url=${encodeURIComponent(W.value.link)}`;window.open(a,"_blank"),Ra("weibo")}function Ma(){J.value=!1;const a=`https://connect.qq.com/widget/shareqq/index.html?title=${encodeURIComponent(W.value.title)}&url=${encodeURIComponent(W.value.link)}&desc=${encodeURIComponent(W.value.description)}`;window.open(a,"_blank"),Ra("qq")}async function Ra(a){if(D.value)try{await i("/share/track",{audioId:D.value.id||D.value._id,platform:a})}catch(e){console.log("记录分享失败:",e)}}function qa(){if(J.value=!1,!D.value)return;const a=W.value.link||`${window.location.origin}/#/pages/player/index?id=${D.value._id}`;F({data:a,success:()=>{r({title:"链接已复制",icon:"success"})},fail:()=>{r({title:"请截图分享",icon:"none"})}})}return t(async a=>{z.value=(null==a?void 0:a.audioId)||(null==a?void 0:a.id)||"",z.value&&await va()}),n(async()=>{var a;if(!z.value){const e=c(),l=e[e.length-1];z.value=(null==(a=null==l?void 0:l.options)?void 0:a.id)||"",z.value&&await va()}}),u(()=>{fa(),da&&clearInterval(da),aa&&clearInterval(aa)}),o(la,a=>{a>0&&D.value&&(O.value=a)}),(a,e)=>{const l=y,t=f,s=C,n=w;return _(),d(t,{class:"page"},{default:v(()=>[p(t,{class:"nav-bar"},{default:v(()=>[p(t,{class:"nav-btn",onClick:ka},{default:v(()=>[p(l,{class:"nav-icon"},{default:v(()=>[k("←")]),_:1})]),_:1}),p(l,{class:"nav-title"},{default:v(()=>[k("正在播放222")]),_:1}),p(t,{class:"nav-btn"})]),_:1}),p(t,{class:"cover-section"},{default:v(()=>[p(t,{class:h(["cover",{rotating:ea.value}])},{default:v(()=>[p(l,{class:"cover-icon"},{default:v(()=>[k("🎵")]),_:1})]),_:1},8,["class"]),p(l,{class:"title"},{default:v(()=>{var a;return[k(g((null==(a=D.value)?void 0:a.title)||"未知标题"),1)]}),_:1}),p(l,{class:"meta"},{default:v(()=>[k(g(Q.value||"默认专辑")+" ",1),ia.value.length>1?(_(),d(l,{key:0},{default:v(()=>[k(" · "+g(ra.value+1)+"/"+g(ia.value.length),1)]),_:1})):m("",!0)]),_:1})]),_:1}),p(t,{class:"text-preview"},{default:v(()=>[p(l,{class:"preview-text"},{default:v(()=>{var a,e;return[k(g(((null==(a=D.value)?void 0:a.text)||"").slice(0,200))+g(((null==(e=D.value)?void 0:e.text)||"").length>200?"...":""),1)]}),_:1})]),_:1}),V.value?(_(),d(t,{key:0,class:"resume-prompt"},{default:v(()=>[p(t,{class:"resume-content"},{default:v(()=>[p(l,{class:"resume-text"},{default:v(()=>[k("上次播放到 "+g(ya(O.value)),1)]),_:1}),p(t,{class:"resume-buttons"},{default:v(()=>[p(s,{class:"resume-btn",onClick:pa},{default:v(()=>[k("从头开始")]),_:1}),p(s,{class:"resume-btn primary",onClick:_a},{default:v(()=>[k("继续播放")]),_:1})]),_:1})]),_:1})]),_:1})):m("",!0),p(t,{class:"progress-section"},{default:v(()=>[p(l,{class:"time"},{default:v(()=>[k(g(ya(la.value)),1)]),_:1}),p(n,{value:la.value,max:ta.value||100,onChange:ha,activeColor:"#4F46E5",backgroundColor:"#e5e7eb","block-size":"16",class:"progress-slider"},null,8,["value","max"]),p(l,{class:"time"},{default:v(()=>[k(g(ya(ta.value)),1)]),_:1})]),_:1}),p(t,{class:"controls"},{default:v(()=>[p(t,{class:h(["control-btn",{active:oa.value}]),onClick:ba},{default:v(()=>[p(l,{class:"control-icon"},{default:v(()=>[k("🔀")]),_:1})]),_:1},8,["class"]),p(t,{class:h(["control-btn",{disabled:!na.value&&!oa.value}]),onClick:ma},{default:v(()=>[p(l,{class:"control-icon"},{default:v(()=>[k("⏮")]),_:1})]),_:1},8,["class"]),p(t,{class:"play-btn",onClick:ga},{default:v(()=>[p(l,{class:"play-icon"},{default:v(()=>[k(g(ea.value?"⏸":"▶"),1)]),_:1})]),_:1}),p(t,{class:h(["control-btn",{disabled:!ca.value&&!oa.value}]),onClick:Ca},{default:v(()=>[p(l,{class:"control-icon"},{default:v(()=>[k("⏭")]),_:1})]),_:1},8,["class"]),p(t,{class:h(["control-btn",{active:"off"!==ua.value}]),onClick:wa},{default:v(()=>[p(l,{class:"control-icon"},{default:v(()=>[k(g("single"===ua.value?"🔂":"🔁"),1)]),_:1})]),_:1},8,["class"])]),_:1}),p(t,{class:"bottom-actions"},{default:v(()=>[p(s,{class:"action-btn",onClick:e[0]||(e[0]=a=>E.value=!0)},{default:v(()=>[p(l,{class:"action-icon"},{default:v(()=>[k("⏱")]),_:1}),p(l,{class:"action-text"},{default:v(()=>[k(g(sa.value)+"x",1)]),_:1})]),_:1}),p(s,{class:"action-btn",onClick:xa},{default:v(()=>[p(l,{class:"action-icon"},{default:v(()=>{var a;return[k(g((null==(a=D.value)?void 0:a.isFavorite)?"❤️":"🤍"),1)]}),_:1}),p(l,{class:"action-text"},{default:v(()=>[k("收藏")]),_:1})]),_:1}),p(s,{class:"action-btn",onClick:Ia},{default:v(()=>[p(l,{class:"action-icon"},{default:v(()=>[k("⬇")]),_:1}),p(l,{class:"action-text"},{default:v(()=>[k("下载")]),_:1})]),_:1}),p(s,{class:"action-btn",onClick:e[1]||(e[1]=a=>H.value=!0)},{default:v(()=>[p(l,{class:"action-icon"},{default:v(()=>[k("⏰")]),_:1}),p(l,{class:"action-text"},{default:v(()=>{return[k(g(Y.value>0?(a=Y.value,`${Math.floor(a/60)}:${(a%60).toString().padStart(2,"0")}`):"定时"),1)];var a}),_:1})]),_:1})]),_:1}),p(t,{class:"playlist-section"},{default:v(()=>[p(t,{class:"playlist-header",onClick:e[2]||(e[2]=a=>L.value=!L.value)},{default:v(()=>[p(l,{class:"playlist-title"},{default:v(()=>[k("📋 播放列表 ("+g(ia.value.length)+")",1)]),_:1}),p(l,{class:"playlist-toggle"},{default:v(()=>[k(g(L.value?"▼":"▶"),1)]),_:1})]),_:1}),L.value?(_(),d(t,{key:0,class:"playlist-content"},{default:v(()=>[(_(!0),b(x,null,I(ia.value,(a,e)=>(_(),d(t,{key:a.id||e,class:h(["playlist-item",{playing:e===ra.value}]),onClick:a=>function(a){N.setPlaylist(ia.value,a,!0),D.value=N.currentAudio}(e)},{default:v(()=>[p(l,{class:"playlist-item-icon"},{default:v(()=>[k(g(e===ra.value?ea.value?"▶":"⏸":"🎵"),1)]),_:2},1024),p(l,{class:"playlist-item-title"},{default:v(()=>[k(g(a.title),1)]),_:2},1024)]),_:2},1032,["class","onClick"]))),128)),0===ia.value.length?(_(),d(t,{key:0,class:"playlist-empty"},{default:v(()=>[p(l,null,{default:v(()=>[k("播放列表为空")]),_:1})]),_:1})):m("",!0)]),_:1})):m("",!0)]),_:1}),H.value?(_(),d(t,{key:1,class:"rate-picker",onClick:e[4]||(e[4]=a=>H.value=!1)},{default:v(()=>[p(t,{class:"rate-content",onClick:e[3]||(e[3]=$(()=>{},["stop"]))},{default:v(()=>[p(l,{class:"rate-title"},{default:v(()=>[k("定时关闭")]),_:1}),p(t,{class:"rate-options"},{default:v(()=>[(_(),b(x,null,I(Z,a=>p(t,{key:a.value,class:h(["rate-item",{active:G.value===a.value}]),onClick:e=>{return l=a.value,G.value=l,Y.value=l,H.value=!1,aa&&(clearInterval(aa),aa=null),void(l>0&&(aa=setInterval(()=>{Y.value>0?Y.value--:(N.pause(),aa&&(clearInterval(aa),aa=null),r({title:"定时关闭,播放已暂停",icon:"none"}))},1e3)));var l}},{default:v(()=>[p(l,null,{default:v(()=>[k(g(a.label),1)]),_:2},1024)]),_:2},1032,["class","onClick"])),64))]),_:1})]),_:1})]),_:1})):m("",!0),K.value?(_(),d(t,{key:2,class:"rate-picker",onClick:e[6]||(e[6]=a=>K.value=!1)},{default:v(()=>[p(t,{class:"rate-content",onClick:e[5]||(e[5]=$(()=>{},["stop"]))},{default:v(()=>[p(l,{class:"rate-title"},{default:v(()=>[k("音质选择")]),_:1}),p(t,{class:"rate-options"},{default:v(()=>[(_(),b(x,null,I(B,a=>p(t,{key:a.value,class:h(["rate-item",{active:X.value===a.value}]),onClick:e=>async function(a){X.value=a,K.value=!1;try{await S("/user/preferences",{quality:a})}catch(e){console.log("保存音质偏好失败:",e)}}(a.value)},{default:v(()=>[p(l,null,{default:v(()=>[k(g(a.label),1)]),_:2},1024)]),_:2},1032,["class","onClick"])),64))]),_:1})]),_:1})]),_:1})):m("",!0),E.value?(_(),d(t,{key:3,class:"rate-picker",onClick:e[8]||(e[8]=a=>E.value=!1)},{default:v(()=>[p(t,{class:"rate-content",onClick:e[7]||(e[7]=$(()=>{},["stop"]))},{default:v(()=>[p(l,{class:"rate-title"},{default:v(()=>[k("播放速度")]),_:1}),p(t,{class:"rate-options"},{default:v(()=>[(_(),b(x,null,I([.5,.75,1,1.25,1.5,2],a=>p(t,{key:a,class:h(["rate-item",{active:sa.value===a}]),onClick:e=>async function(a){N.setPlayRate(a),E.value=!1;try{await S("/user/preferences",{playSpeed:a})}catch(e){console.log("保存播放速度偏好失败:",e)}}(a)},{default:v(()=>[p(l,null,{default:v(()=>[k(g(a)+"x",1)]),_:2},1024)]),_:2},1032,["class","onClick"])),64))]),_:1})]),_:1})]),_:1})):m("",!0),J.value?(_(),d(t,{key:4,class:"share-picker",onClick:e[11]||(e[11]=a=>J.value=!1)},{default:v(()=>[p(t,{class:"share-content",onClick:e[10]||(e[10]=$(()=>{},["stop"]))},{default:v(()=>[p(t,{class:"share-card-preview"},{default:v(()=>[p(t,{class:"share-cover"},{default:v(()=>[p(l,{class:"share-cover-icon"},{default:v(()=>[k("🎵")]),_:1})]),_:1}),p(t,{class:"share-info"},{default:v(()=>[p(l,{class:"share-title"},{default:v(()=>[k(g(W.value.title||"AI 有声书"),1)]),_:1}),p(l,{class:"share-desc"},{default:v(()=>[k(g(W.value.description||"精彩内容,快来听听"),1)]),_:1})]),_:1})]),_:1}),p(l,{class:"share-title-text"},{default:v(()=>[k("分享到")]),_:1}),p(t,{class:"share-options"},{default:v(()=>[p(t,{class:"share-option",onClick:$a},{default:v(()=>[p(l,{class:"share-option-icon"},{default:v(()=>[k("💬")]),_:1}),p(l,{class:"share-option-label"},{default:v(()=>[k("微信好友")]),_:1})]),_:1}),p(t,{class:"share-option",onClick:Pa},{default:v(()=>[p(l,{class:"share-option-icon"},{default:v(()=>[k("⭕")]),_:1}),p(l,{class:"share-option-label"},{default:v(()=>[k("朋友圈")]),_:1})]),_:1}),p(t,{class:"share-option",onClick:Sa},{default:v(()=>[p(l,{class:"share-option-icon"},{default:v(()=>[k("📢")]),_:1}),p(l,{class:"share-option-label"},{default:v(()=>[k("微博")]),_:1})]),_:1}),p(t,{class:"share-option",onClick:Ma},{default:v(()=>[p(l,{class:"share-option-icon"},{default:v(()=>[k("🐧")]),_:1}),p(l,{class:"share-option-label"},{default:v(()=>[k("QQ")]),_:1})]),_:1})]),_:1}),p(t,{class:"share-actions"},{default:v(()=>[p(s,{class:"share-action-btn",onClick:qa},{default:v(()=>[p(l,{class:"share-action-icon"},{default:v(()=>[k("🔗")]),_:1}),p(l,null,{default:v(()=>[k("复制链接")]),_:1})]),_:1}),p(s,{class:"share-action-btn",onClick:e[9]||(e[9]=a=>J.value=!1)},{default:v(()=>[p(l,null,{default:v(()=>[k("取消")]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})):m("",!0)]),_:1})}}}),[["__scopeId","data-v-f401a293"]]);export{z as default};
|