在notion中内嵌音乐
type
status
date
May 26, 2023 07:04 AM
slug
summary
tags
category
icon
password
背景
目前,
notion
支持通过embed的方式内嵌网页,通过此方式可以在文章中引入各种各样的小挂件,其中便包括内嵌背景音乐。不足
遗憾的是,
notion embed
对国内音乐平台的支持不太友好(参考此issue),这时就需要借助第三方工具了。APlayer + Meting
基于上述问题,目前比较推荐的第三方工具是
APlayer
与Meting
的组合。核心依赖
项目 | Github | 简述 |
APlayer | 支持丰富选项的H5音频播放器 | |
Meting | 基于PHP实现,支持多平台的音乐API框架 | |
MetingJS | 连接 APlayer 与Meting 的插件 |
实现原理
综合分析上述项目功能可知,我们可以实现一个简易的页面,通过url传参的方式,调用
MetingAPI
获取指定平台的歌曲信息(包含歌曲链接、歌曲封面、歌词等),再传递给APlayer
进行播放器UI渲染与音频播放。大概的流程如下:
- ① 在
notion
中embed
一个webview
,在URL中传递所需的控制参数
- ②
webview
内部引用APlayer
与MetingJS
- ③
MetingJS
根据URL参数调用MetingAPI
- ④
MetingAPI
返回具体的歌曲信息
- ⑤
MetingJS
把歌曲信息传递给APlayer
- ⑥
APlayer
渲染播放器UI
- ⑦
APlayer
播放歌曲
webview
在了解了大概的实现原理后,我们还需要实现上图中的
webview
以串联各个依赖项。可以考虑使用github上现有的实现:
simple-notion-widgets
ourongxing • Updated Jan 25, 2024
支持
vercel
一键部署,得到具体的vercel
域名后就可以接入使用。参数说明
点击展开
示例
另外,指的注意的是,目前
MetingAPI
暂不支持解析付费歌曲与VIP歌曲,需要额外的cookie
配置。参考
- Music for notion: https://www.zhoie.com/music-for-notion