【第三方云音乐播放器SPlayer本地安装结合内网穿透打造个性化远程音乐库】

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)
🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:“没有罗马,那就自己创造罗马~”

文章目录

    • 前言
    • 1. 安装Docker
    • 2. 创建并启动Splayer容器
    • 3. 本地访问测试
    • 4. 公网远程访问本地Splayer
      • 4.1 内网穿透工具安装
      • 4.2 创建远程连接公网地址
      • 4.3 使用固定公网地址远程访问

前言

本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署一款高颜值无广某抑云音乐播放器Splayer,并结合cpolar内网穿透工具轻松实现出门在外,依然可以异地远程访问本地部署的服务随时听音乐。

SPlayer是一款设计简约,但UI非常漂亮的开源音乐播放器。可以登录某抑云账号,播放器全部位置没有广告,非常清爽。在使用体验上,除了支持歌词显示、下载歌曲、歌单管理等基本功能外,还在移动端进行了基础适配,并支持MV与视频播放,主题自适应,自动签到等功能。

目前Splayer已支持Windows、macOS和Linux平台,并且可以使用Docker部署Web版,本教程将在ubuntu系统中使用docker-compose进行部署流程的展示。

1726741704078

1. 安装Docker

本教程操作环境为Linux Ubuntu系统,在开始之前,我们需要先安装Docker。

curl -fsSL https://get.docker.com -o get-docker.sh

然后再启动docker

sudo sh get-docker.sh

最后我们在docker容器中运行下 hello world 看一下是否安装成功。

sudo docker container run hello-world

可以看到出现了hello world,也就是说明我们已经安装docker成功,那么接下来就可以直接拉取Splayer镜像了。

image-20240910145208138

2. 创建并启动Splayer容器

接下来创建Splayer项目文件夹并编辑docker-compose.yml,内容如下:

mkdir splayer

然后进入该项目文件夹

cd splayer

使用nano创建docker-compose文件:

nano docker-compose.yml

在编辑器中输入下方代码保存退出:

version: '3.9'
services:splayer:image: imsyy/splayer:latestcontainer_name: splayerrestart: unless-stoppednetwork_mode: bridgeenvironment:- TZ= Asia/Shanghaiports:- '7899:7899'

然后执行下方命令启动容器运行:

sudo docker compose up -d

如需停止可以执行:

sudo docker compose down

OK,经过以上过程,Docker部署 Splayer 播放器就完成了,现在我们可以通过任意浏览器进行访问测试。

3. 本地访问测试

在浏览器输入 http://localhost:7899 即可,显示下图即为访问成功!

image-20240920104544553

点击右上角的登录按钮,可以选择扫码登录和验证码登录两种方式登录某抑云音乐账号:

image-20240920104803747

还可以选择主题颜色模式与全局设置:

image-20240920104907764

image-20240920104924749

登录后,可以在右侧菜单中查看你在某云播放器中喜欢的音乐,收藏,云盘,创建和搜藏的歌单:

在这里插入图片描述

双击歌曲播放后,可以点击喜欢旁边的三横线标志,使用添加歌曲到歌单与查看评论等功能:

image-20240920105640075

双击歌曲播放条,可以全屏播放歌曲,点击右上角按钮可恢复正常界面:

在这里插入图片描述

全程无广,非常清爽!

4. 公网远程访问本地Splayer

不过我们目前只能在本地局域网内使用手机电脑等设备访问刚刚使用docker部署的播放器,如果出门在外,想要远程访问在家中部署的Splayer听歌,应该怎么办呢?我们可以使用cpolar内网穿透工具来实现无公网ip环境下的远程访问需求。

4.1 内网穿透工具安装

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

在这里插入图片描述

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar

image-20240801132301959

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

4.2 创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了:Splayer 注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:7899
  • 域名类型:选择随机域名
  • 地区:选择China VIP

image-20240920110301487

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址(可在高级设置中配置只生成http或https一条公网地址):

在这里插入图片描述

然后就可以在其他电脑或手机平板(异地)上,使用上边任选其一的公网地址在浏览器中访问即可。

image-20240920110806726

可以看到成功实现使用公网地址异地远程访问本地部署的 Splayer 播放器!但需要重新登录某云账号。

小结

为了方便演示,我们在上边的操作过程中使用了cpolar生成的公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时远程测试时使用。

如果有长期远程访问本地 Splayer 播放器 或者其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来远程访问。

4.3 使用固定公网地址远程访问

登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是mysplayer,大家也可以自定义喜欢的名称。

image-20240920111120893

保留成功后复制保留成功的二级子域名的名称:mysplayer,返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道 splayer,点击右侧的编辑:

image-20240920111255895

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名:mysplayer
  • 地区:选择China VIP

点击更新(注意,点击一次更新即可,不需要重复提交)

1726802258301

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:

image-20240920111905814

然后使用这个固定公网地址在浏览器访问,可以看到访问成功,这样即使出门在外也可以随时随地使用这个网址来远程访问本地部署的 Splayer 播放器来听音乐了!

image-20240920112133816

以上就是如何在Linux Ubuntu系统使用Docker部署Splayer 云音乐播放器,并结合cpolar内网穿透工具配置固定公网地址,实现随时随地远程访问本地搭建的音乐播放器的全部流程,感谢您的观看,如果你也有远程访问本地部署服务的需求,不妨体验一下cpolar带来的简洁方便!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887458.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

easyui combobox 只能选择第一个问题解决

easyui combobox 只能选择第一个问题解决 问题现象 在拆分开票的时候,弹出框上面有一个下拉框用于选择需要新增的明细行,但是每次只能选择到第一个 选择第二条数据的时候默认选择到第一个了 代码如下 /*新增发票编辑窗口*/function addTicketDialog…

从零开始:Linux 环境下的 C/C++ 编译教程

个人主页:chian-ocean 文章专栏 前言: GCC(GNU Compiler Collection)是一个功能强大的编译器集合,支持多种语言,包括 C 和 C。其中 gcc 用于 C 语言编译,g 专用于 C 编译。 Linux GCC or G的安…

transformer.js(三):底层架构及性能优化指南

Transformer.js 是一个轻量级、功能强大的 JavaScript 库,专注于在浏览器中运行 Transformer 模型,为前端开发者提供了高效实现自然语言处理(NLP)任务的能力。本文将详细解析 Transformer.js 的底层架构,并提供实用的性…

算法日记 33 day 动态规划(打家劫舍,股票买卖)

今天来看看动态规划的打家劫舍和买卖股票的问题。 上题目!!!! 题目:打家劫舍 198. 打家劫舍 - 力扣(LeetCode) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金…

STM32 Keil5 attribute 关键字的用法

这篇文章记录一下STM32中attribute的用法。之前做项目的时候产品需要支持远程升级,要求版本只能向上迭代,不支持回退。当时想到的方案是把版本号放到bin文件的头部,设备端收到bin文件的首包部数据后判断是否满足升级要求,这里就可…

wordpress中Gravatar用户头像不显示,免插件实现添加自定义设置上传头像功能

该功能主要是用于免插件为用户添加头像,解决头像无法显示或无法更换自定义头像的问题 虽热这个功能使用场景和频率都非常低,但在有时候还是需要WordPress来显示头像的,但是zuanmang.net并不是每个人都有注册设置Gravatar头像。所以便需要我们…

aws服务--机密数据存储KMS(1)介绍和使用

在AWS(Amazon Web Services)中存储机密数据时,安全性和合规性是最重要的考虑因素。AWS 提供了多个服务和工具,帮助用户确保数据的安全性、机密性以及合规性。AWS Secrets Manager、KMS(Key Management Service)是推荐的存储机密数据的AWS服务和最佳实践。这里先看KMS。 …

51c~C语言~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/12652943 一、嵌入式开发中的C语言编译器 如果你和一个优秀的程序员共事,你会发现他对他使用的工具非常熟悉,就像一个画家了解他的画具一样。----比尔.盖茨1 不能简单的认为是个工具 嵌入式程序开发…

ensp静态路由实验

一、实验目的 1、熟练掌握交换机的基本配置命令 2、熟练掌握静态路由的使用方法 3. 熟练掌握交换机端口模式 二、实验内容 需求: 根据要求利用现有实验设备组建小型局域网 实验设备: 交换机S37002台;PC机2台;路由器2台。 …

【git】commit之后,想撤销commit

一、已经commit,想要回退到上一步 保留代码 git reset --soft HEAD^回退到具体的哪一步 HEAD^的意思是上一个版本,也可以写成HEAD~1如果你进行了2次commit,想都撤回,可以使用HEAD~2二、git reflog 查看 sha值 git reflog 回到…

在 Ubuntu 上安装 Yarn 环境

在 Ubuntu 上安装 Yarn 环境 步骤 1: 更新系统步骤 2: 安装 Node.js步骤 3: 安装 Yarn方法 1: 使用 npm 安装方法 2: 使用 APT 安装 步骤 4: 验证安装总结 在 Ubuntu 上安装 Yarn 环境可以通过以下步骤完成: 步骤 1: 更新系统 首先,确保你的系统是最新…

深度学习3

五、自动微分 1、基础概念 模块 autograd 负责自动计算张量操作的梯度,具有自动求导功能;autograd 创建一个动态计算图来跟踪张量的操作,每个张量是计算图中的一个节点,节点之间的操作构成图的边。 属性 requires_grad 决定…

PostgreSQL 中约束Constraints

在 PostgreSQL 中,约束(Constraints)是用于限制进入数据库表中数据的规则。它们确保数据的准确性和可靠性,通过定义规则来防止无效数据的插入或更新。PostgreSQL 支持多种类型的约束,每种约束都有特定的用途和语法。以…

路由器中继与桥接

一 . 背景 现在的路由器大多数已经开始支持多种网络连接模式,以下将以TP-Link迷你无线路由器为例进行展开介绍。在TP-Link迷你无线路由器上一般有AP(接入点)模式,Router(无线路由)模式,Repeate…

2.13 转换矩阵

转换矩阵引用了库nalgebra,使用时研究具体实现。 use std::ops;use nalgebra::Perspective3;use crate::Scalar;use super::{Aabb, LineSegment, Point, Triangle, Vector};/// An affine transform #[repr(C)] #[derive(Debug, Clone, Copy, Default)] pub struct…

SQL进阶:如何跳过多个NULL值取第一个非NULL值?

NULL 一、问题描述二、ORACLE<一>、last_value () over ()<二>、lag () over()<三>、相关子查询 三、MYSQL<一>、全局变量<二>、coalesce() lag() over()<三>、相关子查询<四>、 recursive<五>、lag() over() min() over() …

wordpress获取文章总数、分类总数、tag总数等

在制作wordpress模板的时候会要调用网站的文章总数分类总数tag总数等这个数值&#xff0c;如果直接用count查询数据库那就太过分了。好在wordpress内置了一些标签可以直接获取到这些数值&#xff0c;本文整理了一些常用的wordpress网站总数标签。 文章总数 <?php $count_…

人工智能|计算机视觉——微表情识别(Micro expression recognition)的研究现状

一、简述 微表情是一种特殊的面部表情,与普通的表情相比,微表情主要有以下特点: 持续时间短,通常只有1/25s~1/3s;动作强度低,难以察觉;在无意识状态下产生,通常难以掩饰或伪装;对微表情的分析通常需要在视频中,而普通表情在图像中就可以分析。由于微表情在无意识状态…

玩转合宙Luat教程 基础篇④——程序基础(库、线程、定时器和订阅/发布)

文章目录 一、前言二、库三、线程四、定时器五、订阅/发布5.1 回调函数5.2 堵塞等待一、前言 教程目录大纲请查阅:玩转合宙Luat教程——导读 写一写Lua程序基础的东西。 包括如何调用库,如何创建线程、如何创建定时器,如何使用订阅/发布事件。 二、库 程序从main.lua开始通…

嵌入式系统与OpenCV

目录 一、OpenCV 简介 二、嵌入式 OpenCV 的安装方法 1. Ubuntu 系统下的安装 2. 嵌入式 ARM 系统中的安装 3. Windows10 和树莓派系统下的安装 三、嵌入式 OpenCV 的性能优化 1. 介绍嵌入式平台上对 OpenCV 进行优化的必要性。 2. 利用嵌入式开发工具&#xff0c;如优…