flet 读取本地音频文件的信息,歌名,歌手,歌曲长度,封面

请先安装 pip install flet, tinytag 组件

tinytag 是用来读取音频文件的信息的

测试用最好找一个有封面的音频的文件, 我是windows电脑,打开预览模式,选中文件时候能够右边显示图片, 如下,我电脑上某个音频文件的封面

import flet as ft
from tinytag import TinyTag
import base64def main(page: ft.Page):page.window_width = 600page.window_height = 600# bytes 转 base64def byte_to_base64(data):encoded_data = base64.b64encode(data)return encoded_data.decode("utf-8")def ms_to_time(ms):# 毫秒转换为时间格式ms = int(ms)minute, second = divmod(ms / 1000, 60)minute = min(99, minute)return "%02d:%02d" % (minute, second)# 音频文件路径# 这是我本地的歌曲,请确认自己的文件路径song_url = "E:/music/从不后悔爱上你-姜育恒.mp3"# 首先我们给这个图片载入一个没有图片的默认图片,我这里是设置了默认图片# 我这是放在 项目目录 assets/album.png的 一张图片song_cover = ft.Image(width=200, height=200, src="album.png")# 读取音频文件song_info = TinyTag.get(song_url, image=True)# 获取文件内图片(一般为专辑封面)img = song_info.get_image()# 这里注意, img 是一个bytes格式的,所以要把他转成base64位# flet Image控件,有两个属性src和src_base64, 第一个是接收一个图片的路径(本地文件或者网络文件的url)# 这样我们需要把img的格式转换成src_base64用来显示图片 byte_to_base64函数就是这个作用# 这里测试的结果 Image 会优先显示 src_base64的内容if img:song_cover.src_base64 = byte_to_base64(img)print(song_info)song_name = ft.Text(value=f"歌名:{song_info.title}")song_artist = ft.Text(value=f"歌手:{song_info.artist}")song_duration = ft.Text(value=f"歌曲长度:{ms_to_time(song_info.duration*1000)}")cont = ft.Row([song_name,song_artist,song_duration,song_cover,])page.add(cont)ft.app(target=main, assets_dir="assets")

下面是运行界面,我这里只是演示,没有进行美化

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

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

相关文章

自动驾驶---行业发展及就业环境杂谈

进入21世纪以来,自动驾驶行业有着飞速的发展,自动驾驶技术(L2---L3)也逐渐落地量产到寻常百姓家。虽然最早期量产FSD的特斯拉有着深厚的技术积累,但是进入2010年以后,国内的公司也逐渐发展起来自己的自动驾…

YOLOv5算法进阶改进(18)— 引入动态蛇形卷积DSConv(ICCV2023 | 用于管状结构分割)

前言:Hello大家好,我是小哥谈。动态蛇形卷积(Dynamic Snake Convolution,简称DSConv)是一种用于图像处理和计算机视觉任务的卷积神经网络(CNN)操作。它是在传统的卷积操作基础上引入了动态蛇形路径的概念,以更好地捕捉图像中的细节和边缘信息。传统的卷积操作是在固定的…

读书笔记-增强型分析:AI驱动的数据分析、业务决策与案例实践

目录 前言 运用人工智能技术,可以使人类社会变得更美好。人们总是期待产品更适合、服务更贴心、生活更便利。在实践中,技术给企业赋能,企业通过优质的产品和服务满足社会,提升人类福祉。很多金融企业已经开始尝试向潜在客户推送…

Uniapp小程序开发-底部tabbar的开发思路

文章目录 前言一、uniapp 实现 tabbar二、图标使用网络图片后端返回tabbar信息uniapp方式中的setTabBarItem 总结 前言 记录uniapp 开发小程序的底部tabbar ,这里讨论的不是自定义tabbar的情况。而是使用wx.setTabBarItem(Object object) 这个api的情况。关于custo…

【Linux进程】进程状态---进程僵尸与孤儿

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1.进程排队2.进程状态…

【Ubuntu】通过网线连接两台电脑以实现局域网连接的方法

有时我们需要将多台计算机连接在一起,以便实现数据共享、资源访问等功能。本文将介绍如何通过网线连接两台运行Ubuntu操作系统的电脑,以便它们能够直接通信,从而实现局域网连接。 1. 准备工作 在开始之前,请准备好: …

[云原生] 二进制安装K8S(上)搭建单机matser、etcd集群和node节点

一、单机matser预部署设计 目前Kubernetes最新版本是v1.25,但大部分公司一般不会使用最新版本。 目前公司使用比较多的:老版本是v1.15,因为v1.16改变了很多API接口版本,国内目前使用比较多的是v1.18、v1.20。 组件部署&#xff…

WordPress前端如何使用跟后台一样的Dashicons图标字体?

很多站长都喜欢在站点菜单或其他地方添加一些图标字体,常用的就是添加Font Awesome 图标和阿里巴巴矢量库图标iconfont。其实我们使用的 WordPress 本身就有一套管理员使用的官方图标字体 Dashicons,登录我们站点后台就能看到这些图标字体。那么有没有可…

力扣思路题:丑数

此题的思路非常奇妙,可以借鉴一下 bool isUgly(int num){if(num0)return false;while(num%20)num/2;while(num%30)num/3;while(num%50)num/5;return num1; }

18个惊艳的可视化大屏(第六辑):地图焦点

本期带来的都是以地图作为视觉焦点的可视化大屏页面。

动态规划课堂1-----斐波那契数列模型

目录 动态规划的概念: 动态规划的解法流程: 题目: 第 N 个泰波那契数 解法(动态规划) 代码: 优化: 题目:最小花费爬楼梯 解法(动态规划) 解法1: 解…

独立站建站全攻略:从0到1打造专属在线商业平台

独立站建站全攻略:从0到1打造专属在线商业平台 随着互联网的普及和发展,越来越多的企业和个人开始认识到拥有一个独立站的重要性。独立站不仅可以提升品牌形象,还能为企业带来更多的流量和潜在客户。本文将为大家详细介绍独立站建站的全过程…

【深度学习笔记】卷积神经网络——汇聚层(池化层)

汇聚层(池化层) 通常当我们处理图像时,我们希望逐渐降低隐藏表示的空间分辨率、聚集信息,这样随着我们在神经网络中层叠的上升,每个神经元对其敏感的感受野(输入)就越大。 而我们的机器学习任…

VsCode的leetcode插件无法登录

前提 想使用VsCode的leetcode插件进行刷题,然后按照网上的教程进行安装下载,但是到了登录这一步,死活也登录不了,然后查看log一直报的错误是invalid password。 解决方法 首先确定在插件中设置的站点是Leetcode中国&#xff0c…

图像处理新框架 | 语义与复原指令双引擎,谷歌研究院提出文本驱动图像处理框架TIP

本文首发: AIWalker 欢迎关注AIWalker,底层视觉与基础AI技术 https://arxiv.org/abs/2312.14091 https://github.com/Picsart-AI-Research/HD-Painter 基于文本到图像扩散模型的空前成功,文本引导图像修复的最新进展已经可以生成非常逼真和视觉上合理的结…

centos7部署单机项目和自启动

centos7部署单机项目和服务器自启动 1.安装jdk和tomact1.1上传jdk、tomcat安装包1.2解压两个工具包1.3.配置并且测试jdk安装1.4.启动tomcat1.5.防火墙设置1.6配置tomcat自启动 2.安装mysql2.1卸载mariadb,否则安装MySql会出现冲突(先查看后删除再查看)2.2在线下载My…

【爬虫逆向实战篇】定位加密参数、断点调试与JS代码分析

文章目录 1. 写在前面2. 确认加密参数3. 加密参数定位4. XHR断点调试 【作者主页】:吴秋霖 【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作! 【作者推荐】:对JS逆向…

python-分享篇-用python制作九宫格切图器

文章目录 代码效果 代码 import tkinter as tk from PIL import Image,ImageTk import sys import tkinter.filedialog#先将图片填充为正方形 def fill_image(image): width, height image.size #比较图片的宽和高,选取值较大的作为新图的宽 newImage_width wid…

仿12306校招项目-项目业务和架构

目录 业务图 用户管理 业务难点 1. 如何确定用户注册信息的真实性 2. 面对亿级用户量 3. 支持多种登录方式会造成读请求扩散,需要解决用户定位问题 4. 高并发场景下缓存穿透问题需要有效解决,避免数据库压力过大 5. 明文存储用户敏感信息会造成安…

抽象的java

Consider defining a bean of type org.springframework.mail.MailSender in your configuration. 报错原因: 第一个:未安装对应的依赖 第二个:对应配置问题 背景:用springboot-java完成邮箱发送 第一个问题解决方法&#xff1…