作者能不能增加一个播放功能
djapple opened this issue · comments
ssr commented
能不能增加一个在线播放的功能
比如搜索出来的歌曲可以播放
坐和放宽 commented
我是在本地魔改了下,由于跟秋城落叶大神可能思路不太一样,没敢pull代码,贴一下大概逻辑,仅供大家参考
SearchMusic.Vue
<el-link v-if="basicStore.config.platform=='kw'" :icon="Headset" :href="`/ext/playUrl?mid=${scope.row.mid}&t=kw&q=mp3&r=1`" target="_blank"><span style="margin-left: 4px;">试听</span></el-link>
<el-link v-if="basicStore.config.platform=='qq'" :icon="Headset" :href="`/ext/playUrl?m=${encodeURIComponent(JSON.stringify(scope.row))}&t=qq&q=mp3&r=1`" target="_blank"><span style="margin-left: 4px;">试听</span></el-link>
浏览器直接播放大概逻辑,获取地址的建议自己做一个API类避免跟git主干冲突(我是自建了一个flaskSystem.src.Api.ExtendApi)
# 音乐试听全家桶
@app.get("/ext/playUrl")
def extPlayurl():
type = request.args.get('t') #音源类型kw qq
mid = request.args.get('mid') #音乐id
q = request.args.get('q') #质量
mjson= request.args.get('m') #qq时的歌曲信息json串
url = ''
if type=='kw': # 酷我
if q == 'best':
q = 'flac|mp3|aac'
url = ext.getKwDownloadUrlByApp(mid, q)
elif type=='qq': # QQ
music = json.loads(mjson)
if q == 'mp3':
music['prefix'] = 'mp3'
url = ext.getQQDownloadLink(music)
if request.args.get('r') : # 浏览器立即试听
hqUrl = f'/ext/playUrl?t={type}&mid={mid}&albumId={albumId}&q=best&m={mjson}'
return redirect(f"/ext/common/playRealtime?url={quote(url)}&hq={quote(hqUrl)}", 302)
else : # 跳转最高音质版本
return redirect(url, 302)
# 实时试听音乐的承载页,避免某些url返回的header直接触发浏览器下载文件,要的就是随时能听到😏
@app.get('/ext/common/playRealtime')
def extPlayRealtime():
template = '''
<!DOCTYPE html>
<html>
<head>
<title>音乐试听页</title>
<meta name="referrer" content="no-referrer">
<style>
* {margin:0; padding:0 }
body{background: #000; width: 100%; height: 100vh;
display: flex; flex-direction: column; justify-content: center; }
audio{margin: 0 auto;display: block; width: 400px; height: 54px; }
a{color:#fff; text-decoration: none; }
p{text-align:center; padding: 10px; }
</style>
</head>
<body>
<audio controls autoplay src="{{url}}" defer></audio>
<p><a href="{{hq}}">最高音质↗</a></p>
</body>
</html>
'''
return render_template_string(template, url=request.args.get('url'), hq=request.args.get('hq'))
秋城落叶 commented
👍
incubus-ohy commented
请问下后续会有计划做个播放功能吗