This commit is contained in:
gitbobobo
2024-04-08 22:31:26 +08:00
parent 1cec259281
commit d88e4b260c
8 changed files with 140 additions and 20 deletions

View File

@@ -4,13 +4,16 @@ sidebar_position: 1
# 介绍
音流是一款 **NAS 音乐播放器**,可以连接到您部署在 NAS 上的 Subsonic、Navidrome、Audio Station、Emby 或 Jellyfin 服务,能让您在不同平台享受一致的音乐盛宴(目前支持 Android、iOS、macOS 和 Windows 平台)
音流是一款 **NAS 音乐播放器**,可以连接到您部署在 NAS 上的**音乐服务**<sup>1</sup>,能让您在**不同平台**<sup>2</sup>享受一致的音乐盛宴。
![](https://oss.aqzscn.cn/resource/blog/img/2024/60b87-ca3fefb87f148b5c03ecf069fb1f95ab.png)
1. 目前支持的音乐服务: Subsonic,Navidrome,Emby,Jellyfin,AudioStation,Plex.
2. 目前支持的平台: Android 5.0, iOS 14, macOS 10.14, Windows 10.
## 要求
在使用音流之前,您必须拥有一台运行着 Subsonic、Navidrome、Audio Station、Emby 或 Jellyfin 任一服务的 NAS因为音流是一个纯粹的音乐播放器专注于串流您已拥有的音乐并不提供任何音乐资料。
在使用音流之前,您必须拥有一台运行着音乐服务的 NAS因为音流是一个纯粹的音乐播放器专注于串流您已拥有的音乐并不提供任何音乐资料。
:::info

View File

@@ -0,0 +1,8 @@
{
"label": "开发笔记",
"position": 8,
"link": {
"type": "generated-index",
"description": "音流开发过程的经验分享,随缘记录。"
}
}

41
docs/notes/plugins.md Normal file
View File

@@ -0,0 +1,41 @@
---
sidebar_position: 1
---
# 插件分享
如果没有开源项目的支持,就不会有现在的音流~
## 界面
### macos_ui
macos_ui 与 Flutter 自带的 Material Widgets 和 Cupertino Widgets 一样,都是为了实现在对应平台设计语言的组件库。
[点此查看](https://macosui.github.io/macos_ui/#/)在线演示。
![](https://oss.aqzscn.cn/resource/blog/img/2024/84187-8f40569512f26dedc256e709c73a4de9.png)
### fluent_ui
fluent_ui 是用于实现 Windows 平台 fluent 设计语言的组件库,这里面的组件相较于 `macos_ui` 里的组件功能更加完善。
[点此查看](https://bdlukaa.github.io/fluent_ui/)在线演示。
![](https://oss.aqzscn.cn/resource/blog/img/2024/65e8d-fc810c37b1bd57ddc5161705e21c8343.png)
### pulldown_button
[pulldown_button](https://github.com/notDmDrl/pull_down_button) 实现了类似 iOS 下拉菜单的效果,动画效果十分丝滑,如果能支持二级菜单就更完美了。
![](https://oss.aqzscn.cn/resource/blog/img/2024/faae1-9ad0cf3582cd7ff590b3e02645f19bc7.png)
## 平台相关
### macos_window_utils
macos_window_utils 是 `macos_ui` 作者的另一作品,主要功能是控制窗口的各种属性,如是否模糊、是否隐藏标题栏等,配合 macos_ui 食用更佳。
### flutter_acrylic
flutter_acrylic 可以在 macOS、Windows、Linux 平台实现窗口模糊/透明效果,其中 macOS 依赖了 `macos_window_utils` 插件,因此如果使用此插件就无需再引入 `macos_window_utils` 了。

View File

@@ -6,7 +6,7 @@ sidebar_position: 7
## 正在进行
适配 Plex
提升播放功能兼容性与稳定性
## 更新频率
@@ -20,7 +20,7 @@ sidebar_position: 7
不准备单独推出车机版,现有版本适配了手机、平板的界面,只要能安装,应该就能在车机上使用。
安卓 TV 版将在适配 Plex 和 威联通音乐套件后开始开发,敬请期待。
安卓 TV 版将于 1.3.0 推出,敬请期待。
苹果 TV 版将在安卓 TV 版适配完成后调研适配可行性,不保证会推出。
@@ -38,6 +38,6 @@ sidebar_position: 7
## 支持新的音乐服务
Plex 和 威联通音乐套件有支持计划,敬请期待。
威联通音乐套件有支持计划,敬请期待。
Webdav、云盘及本地音乐暂不考虑开发作为远期规划。

View File

@@ -67,12 +67,26 @@ Flac 文件没有 seekTable 信息,在 iOS 端会存在此问题。
这似乎发生在安卓手机锁屏之后,目前暂未发现解决办法,具体处理进度参见问题 [Android MediaItem is not updating on car display through bluetooth](https://github.com/ryanheise/audio_service/issues/908)。
### 安卓开启桌面歌词后 Bitwarden 应用内无响应
这应该是 Bitwarden 的安全机制导致的,因为识别到了悬浮窗。
:::info
相关问题:[Android Bitwarden App - controls not working](https://www.reddit.com/r/Bitwarden/comments/x0jmbr/android_bitwarden_app_controls_not_working/)
:::
### App 未打开时无法使用 CarPlay
在 App 未打开时flutter 引擎尚未初始化,此时无法接收到 CarPlay 已连接的消息,也就无法处理 CarPlay 有关的逻辑了。
:::info
这似乎是 Flutter 应用的硬伤?也可能是我了解的不多,如果不显示界面就能触发 Flutter 引擎初始化的话应该就可以解决这个问题了。
相关问题:[CarPlay app required Flutter App open first?](https://github.com/oguzhnatly/flutter_carplay/issues/12)
尝试了这个帖子中的做法,可以实现不打开 app 显示 CarPlay 界面,但无法播放音乐,手动进入应用后界面会卡住不动。
等之后再研究研究。
:::

View File

@@ -8,27 +8,28 @@ sidebar_position: 2
## 支持版本
- Subsonic 1.15.0 及以上
- Navidrome 0.49.3 及以上
- Jellyfin 10.8.10 及以上
- Plex 1.29.2 及以上,支持 OTP 验证码登录
- AudioStation DSM 6 及以上,支持 OTP 验证码登录
- Emby 4.7.14.0 及以上
- AudioStation DSM 6 及以上,支持密码及 OTP 验证码登录
- Jellyfin 10.8.10 及以上
- Subsonic 1.15.0 及以上
## 音乐相关功能
`-` 未知
| | Subsonic | Navidrome | Audio Station | Emby | Jellyfin |
| ------- | ------- | ------- | --- | --- | --- |
| 内嵌歌词 | - | ✅ | | ✅ | |
| 外置歌词 | - | | ✅ | ✅ | |
| 在线歌词 | - | | ✅ | ✅ | |
| 歌手简介 | - | ✅ | ✅ | ✅ | ✅ |
| 歌手头像 | - | *<sup>1</sup> | *<sup>2</sup> | ✅ | ✅ |
| 多艺术家 | - | | - | ✅ | ✅ |
| 回放增益标签 | - | ✅ | | | |
| 收藏功能 | ✅ | ✅ | *<sup>3</sup> | ✅ | ✅ |
| | Subsonic | Navidrome | Audio Station | Emby | Jellyfin | Plex |
| ------- | ------- | ------- | --- | --- | --- | --- |
| 内嵌歌词 | - | ✅ | | ✅ | | |
| 外置歌词 | - | | ✅ | ✅ | | ✅ |
| 在线歌词 | - | | ✅ | ✅ | | ✅ |
| 歌手简介 | - | ✅ | ✅ | ✅ | ✅ | ✅ |
| 歌手头像 | - | *<sup>1</sup> | *<sup>2</sup> | ✅ | ✅ | ✅ |
| 多艺术家 | - | | - | ✅ | ✅ | |
| 回放增益标签 | - | ✅ | | | | ✅ |
| 收藏功能 | ✅ | ✅ | *<sup>3</sup> | ✅ | ✅ | *<sup>3</sup> |
1. Navidrome 若要显示歌手头像,需要配置 Spotify API国内环境即使配置了也很难有作用或在歌手文件夹下放一张名为 `artist.*` 的图片。[Artwork location resolution](https://www.navidrome.org/docs/usage/artwork/#artists)
2. Audio Station 的歌手头像用的是音乐库中的专辑图片。
3. Audio Station 没有收藏功能,音流是通过歌单接口间接实现的此功能。此外Emby 和 Jellyfin 收藏后不记录收藏时间,因此无法实现按收藏时间倒序的功能。
3. Audio Station 和 Plex 没有收藏功能,音流会将评级为 🌟🌟🌟🌟🌟 的歌曲视为收藏的歌曲。此外Emby 和 Jellyfin 收藏后不记录收藏时间,因此无法实现按收藏时间倒序的功能。

View File

@@ -6,6 +6,47 @@ sidebar_position: 99
更新于2024-03-15
:::tip 护甲+1
import DayCounter from '@site/src/components/DayCounter';
音流发布至今已有 <DayCounter dateStr="2023-06-06"/> 天了,共更新了 27 个版本,还是个很年轻的播放器呢~
因个人开发经验与精力所限,且要兼顾多个平台与音乐服务,更新速度与 bug 解决速度难免要慢一些,望诸君见谅。
但我始终相信:下个版本会更好!
:::
## V1.2.72024-04-08
更新内容:
- 支持[专辑/歌手收藏功能](https://github.com/gitbobobo/StreamMusic/issues/155),增加对应的筛选功能
- 删除自动切换离线模式的逻辑
- 调整部分界面的弹出菜单样式
- 降低联网验证会员身份的概率
- 支持多艺术家【[#116](https://github.com/gitbobobo/StreamMusic/issues/116), [#96](https://github.com/gitbobobo/StreamMusic/issues/96)】
- 自定义 API 封面接口支持单独配置获取专辑还是歌手(取消请求歌曲封面,[统一改为获取专辑封面](https://github.com/gitbobobo/StreamMusic/issues/209)
- [提升歌词解析的兼容性](https://github.com/gitbobobo/StreamMusic/issues/190)
- 支持[连接至 Plex](https://github.com/gitbobobo/StreamMusic/issues/43),暂未适配转码播放,请注意流量消耗(下个版本适配)
- Audio Station 喜欢功能调整为获取五星评分的歌曲
- Emby 禁止直接创建歌单,可选中歌曲后在添加到歌单的弹框中创建新歌单
- 修复[Subsonic 封面图片混乱的问题](https://github.com/gitbobobo/StreamMusic/issues/189)
- [桌面端点击控制栏可显示播放控制按钮](https://github.com/gitbobobo/StreamMusic/issues/182),用于适配触屏操作
- Windows 改为单进程应用
安卓版下载地址:
- [app-arm64-v8a-release.apk](https://oss.aqzscn.cn/stream-music/versions/1.2.7/app-arm64-v8a-release.apk)
- [app-armeabi-v7a-release.apk](https://oss.aqzscn.cn/stream-music/versions/1.2.7/app-armeabi-v7a-release.apk)
- [app-x86_64-release.apk](https://oss.aqzscn.cn/stream-music/versions/1.2.7/app-x86_64-release.apk)
- [app-release.apk](https://oss.aqzscn.cn/stream-music/versions/1.2.7/app-release.apk)
Mac 下载地址:[音流v1.2.7.dmg](https://oss.aqzscn.cn/stream-music/versions/1.2.7/音流v1.2.7.dmg)
Windows 版下载地址:[stream_music_1.2.7.0.msix](https://oss.aqzscn.cn/stream-music/versions/1.2.7/stream_music_1.2.7.0.msix)
## V1.2.62024-03-15
更新内容:

View File

@@ -0,0 +1,12 @@
export default function DayCounter({dateStr}) {
// 计算当前日期与传入的日期之间的天数
const date1 = new Date();
const date2 = new Date(dateStr);
const diffTime = Math.abs(date2 - date1);
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
return (
<span>{diffDays}</span>
);
}