最近在整理,自己的程序的时候,发现了这个轻便的player。
想起来,还是在学校里面,学习directshow的时候开发的呢。
界面:
可以添加歌曲到列表中:

收缩之后:

还是不错 呵呵
wisdom
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
600+累计阅读
689平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄20年
最近在整理,自己的程序的时候,发现了这个轻便的player。
想起来,还是在学校里面,学习directshow的时候开发的呢。
界面:
可以添加歌曲到列表中:

收缩之后:

还是不错 呵呵
wisdom
衡山派平台mini_audio_player模块接口设计与实现详解
本文详细解析了衡山派(ArtInChip)平台MPP中间件中的mini_audio_player音频播放模块。通过剖析其源码结构、核心数据状态机及非阻塞API设计,并结合官方Demo,指导开发者如何在嵌入式设备上高效集成该模块,实现MP3、WAV等音频文件的播放、暂停、音量控制等功能。
【免费下载】 DFPlayer Mini MP3 播放器使用指南
DFPlayer Mini是DFRobot公司推出的一款小型MP3播放模块,它支持SD卡和UART串口通信,可用于Arduino等开发平台进行音频播放。该模块易于集成到各种项目中,例如智能玩具、智能家居、实验教学等场合。 **特点** - 支持SD卡播放MP3/WAV文件 - 可通过UART串口控制 - 内置音效模式 - 简单易用的API接口 **官方网站及资源** [DFPlayer Min...
MP3Player库:DFPlayer Mini高可靠嵌入式驱动设计
DFPlayer Mini作为主流低成本MP3解码模块,其UART通信稳定性高度依赖硬件层电平匹配、共地设计与电源瞬态响应能力。理解TTL电平阈值、地电位差影响及950mA峰值电流特性,是构建鲁棒音频子系统的基础。MP3Player库通过软件复位握手协议、异步命令队列与BUSY引脚状态协同机制,解决了指令丢弃、初始化不同步与CPU阻塞等典型工程痛点,显著提升在STM32、ESP32及Arduino平台上的部署可靠性。该方案广泛适用于智能玩具、语音提示设备与节日互动装置等资源受限的嵌入式音频场景。
Arduino驱动DFPlayer Mini MP3模块
DFPlayer Mini是一款小巧且价格低廉的MP3模块,可以直接接驳扬声器。模块配合供电电池、扬声器、按键可以单独使用,也可以通过串口控制,作为Arduino UNO或者是任何有串口的单片机的一个模块。模块本身完美的集成了MP3、WAV、WMA的硬解码。同时软件支持TF卡驱动,支持FAT16、FAT32文件系统。通过简单的串口指令即可完成播放指定的音乐,以及如何播放音乐等功能,无需繁琐的底层操作,使用方便,稳定可靠。
一起玩儿物联网人工智能小车(ESP32)——66 Mini MP3 Player模块的使用
摘要:本文介绍Mini MP3 Player模块的使用方法
【雕爷学编程】Arduino动手做(212)---9合1 扩展板完成Arduino的第10类扩展实验之DFPlayer Mini TF卡MP3播放模块
雕爷学编程,Arduino动手做,开源硬件,创客传感器,9合1 扩展板模块
Mini MP3 Player播放器简介与STC12例程
官方的英文文档串口模式只是寥寥数笔,于是我找到mini MP3板载的芯片“YX5200-24SS串口语音芯片”的资料,对串口控制有非常详细的说明。我们采用AD模块按键,代替传统的矩阵键盘连接方式,它是利用单片机日益强大的AD功能,我们的模块默认配置2个AD端口,20个按键电阻分布。完全支持FAT16、FAT32文件系统,最大支持32G的TF卡,支持32G的U盘,64M字节的NORFLASH。图1-5-1-2:YX5200-24SS串口语音芯片串口功能简介。图1-5-3-1:按键控制模式接线图。
【雕爷学编程】Arduino动手做(82)---Mini MP3 Player播放器
37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验八十二:MP3播放器 开源 Mini MP3 Player 播放器 SD卡 音乐DFPlayer模
Mini Media Player 项目教程
Mini Media Player 是一个为 Home Assistant Lovelace UI 设计的极简且高度可定制的媒体播放器卡片。该项目的目标是提供一个简洁的用户界面,使用户能够轻松控制和管理媒体播放器实体。Mini Media Player 的设计灵感来自于 Custom UI: Mini media player 和 custom-lovelace。 ## 2. 项目快速启动 #...
嵌入式C开发必备:用Cursor规则搞定代码风格检查(附Pikachu项目实战)
本文以Pikachu开源项目为例,详细介绍了如何利用Cursor的AI代理规则系统,为嵌入式C开发项目配置一套完整的代码风格检查与规范执行方案。通过实战演示,指导开发者创建项目级规则,实现命名、格式、硬件抽象层及驱动开发的自动化规范,从而提升代码一致性、可维护性和团队协作效率。
用友U8 API开发实战:手把手教你使用API资源管理器完成单据操作
本文详细介绍了用友U8 API开发实战,重点讲解如何使用API资源管理器完成采购订单、销售出库单等核心业务单据的全生命周期管理。从开发环境搭建到单据查询、新增、修改、删除等基础操作,再到高级功能如审核状态管理、业务事件处理和自定义项扩展,帮助开发者快速掌握用友U8接口开发技巧,提升企业数字化转型效率。
关于使用DFRobot的Mini MP3 Player的串口指令
最近在使用Arduino做一个项目,需要
关系代数表达式优化步骤
关系代数表达式优化步骤 本篇主要讲解怎么画查询语法树并对其优化,因为我在学关系代数的语法树的时候,在网上找不到比较详细的教法或者技巧,最后通过答案反推原理,所以想写一篇技巧来描述一下这类题的解题方法。 先上书内讲解 1、构造查询树 第一步:把用高级语言定义的查询转换为关系代数表达式 ★ 以 SELECT子向对应投影操作,以FROM字向对应笛卡尔积以 WHERE子句对应选择操作,生成原始查询树 ★ SQL语句转化为原始查询树 第二步:把关系代数表达式转换为查询树。 注: 查询树是一种表示关系代数表达式的树形结
Bilibili-Evolved 小窗播放器大小定制:mini-player-size 组件的缩放原理与拖拽实现
本文围绕 Bilibili-Evolved(哔哩哔哩增强脚本)中的「小窗播放器大小」(mini-player-size)组件展开。该组件允许用户自定义 B 站小窗(迷你)播放器的尺寸,并支持鼠标拖拽四角实时调整、可选锁定 16:9 宽高比。读完本文,你将理解它如何通过 CSS 变量驱动播放器缩放、如何注入四个方向的拖拽手柄并计算尺寸钳制,以及它与 B 站 bpx 播放器 `playerModeCh
均值场博弈_平均场博弈(mean field game)
The New Big Fish Called Mean-Field Game Theory原文链接http://www.science4all.org/article/mean-field-games/www.science4all.org主要内容在经典博弈论中,它对附近其他鱼类的行为做出反应。这是非常复杂的,因为不同的鱼类之间会有大量的相互作用。这意味着经典博弈论对应于一长串高度耦合的方程。...
Shader之——花草动画shader
今天 ,接到了个需求,花草的动画。谈到花草动画,立马就想到顶点动画,让顶点动起来就可以实现了。但是有个问题,所有的草都往一个方向运动,这个就麻烦了。因为在shader里没有随机这种概念,提到最多的是用一张噪声图来模拟。在网上搜索了一下,发现有更好的办法,就是用每个顶点到一个点的距离来控制动画的开始,毕竟每个顶点到同一个点的距离很少是一样的。 float dis = distance ...
衡山派Recorder模块调试指南:_MINI_AUDIO_PLAYER_DEBUG_宏开启与源码定位详解
本文详细介绍了在衡山派MPP中间件中,如何通过开启_MINI_AUDIO_PLAYER_DEBUG_宏来调试mini_audio_player的Recorder模块。指南提供了宏定义的精准文件路径、启用步骤以及编译验证方法,帮助嵌入式工程师快速定位并解决音频采集过程中的问题,有效提升调试效率。
集成学习之GBDT
GBDT
vue-mini-player vue视频播放组件
vue视频播放组件 // html部分 <vueMiniPlayer ref="vueMiniPlayer" :video="video" :mutex="true" @fullscreen="handleFullscreen" /> // js部分 data() { return { video: { url: "http://47.105.206.28/videos
Linux性能调优之CPU时间分布(亲和性、带宽、权重)配置
带宽权重亲和性进程级别Cgroup-v2服务级别systyemd我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ------赫尔曼·黑塞《德米安》
构建企业级AI税务顾问:优化税收策略与合规
本文深入探讨了构建企业级AI税务顾问的重要性及其在实际应用中的价值。通过分析当前税务领域的挑战和问题,本文详细介绍了AI税务顾问的基本原理、技术架构、核心功能以及实践应用。文章以逐步分析的方式,从背景介绍、核心概念与联系、算法原理讲解、系统分析与架构设计、项目实战到最佳实践与展望,系统性地展示了如何利用AI技术优化税收策略并确保税务合规。文章旨在为企业和税务从业者提供实用的指导,推动AI在税务领域的创新与发展。在当前全球经济一体化的背景下,企业面临着越来越复杂的税务环境。首先,税收法规的复杂性日益增加。
物联网开发118 - Micropython ESP32 C3连接Mini MP3 Player 播放器模块
使用合宙ESP32 C3,连接Mini MP3 Player 播放器模块
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
vue视频播放组件vue-mini-player
vue-mini-player官方文档:vue-mini-player: 基于Vue的一个轻量级HTML5视频播放组件,适配PC和移动端
VB摄像头监控
该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
基于Arduino与DF Player Mini的触摸音频播放系统设计与实现
在嵌入式系统与物联网应用中,传感器交互与多媒体输出是构建智能设备的核心技术。其基本原理是通过微控制器(如Arduino)读取传感器(如电容式触摸模块)的输入信号,经过程序逻辑处理,再控制外围功能模块(如音频解码芯片)执行相应动作。这项技术的价值在于能够将物理世界的交互无缝转化为数字化的反馈,极大地丰富了人机交互的体验。它广泛应用于智能家居的提示装置、互动式教育玩具、公共导览系统以及创意艺术装置等场景。本文以典型的**DF Player Mini** MP3模块和**TTP223电容触摸传感器**为例,详细解
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
嵌入式轻量级音频播放器mini_audio_player设计解析
嵌入式音频播放是工业HMI、智能语音终端等实时系统的关键能力,其核心在于资源受限环境下的确定性行为与低开销实现。基于分层架构与不透明句柄设计,该方案通过非阻塞API保障实时响应,依托HAL抽象解耦软硬件依赖,显著降低内存占用与CPU负载。技术价值体现在状态机驱动的可预测控制流、零动态分配的内存确定性,以及MP3/WAV双格式聚焦带来的工程权衡优势。典型应用于RTOS(如AICOS、RT-Thread)平台的音视频设备、便携终端与工业人机界面,为嵌入式Linux及MCU级音频中间件开发提供可复用范式。
Mini MP3 Player模块无法正常播放
Mini MP3 Player模块,弄了一下午还是无法播放,最后才发现是校验和的问题。 播放第一首歌曲指令(文件要以000X.MP3格式命名): 7E FF 06 03 00 00 01 FE F6 EF 商家公式:计算从第二位(0xFF)~第七位(0x00)的和在取反 FF+06+03+00+00+01=0x0109,取反后得到0xFF F6这样是无法播放的。 实际公式:0x10000-计算从...
6364
1256

被折叠的 条评论
为什么被折叠?



