资源简介
支持mp3,wav,ape,flac等格式的音频,支持sd卡,支持中文日文等字库,可以通过OLED屏幕显示当前的歌曲信息,暂不支持歌词显示
代码片段和文件信息
#include “audioplay.h“
#include “ff.h“
#include “malloc.h“
#include “usart.h“
#include “wm8978.h“
#include “i2s.h“
#include “led.h“
#include “delay.h“
#include “key.h“
#include “exfuns.h“
#include “text.h“
#include “string.h“
#include “oled.h“
#include “mp3play.h“
#include “flacplay.h“
//////////////////////////////////////////////////////////////////////////////////
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//ALIENTEK STM32F407开发板
//音乐播放器 应用代码
//正点原子@ALIENTEK
//技术论坛:www.openedv.com
//创建日期:2014/5/24
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 广州市星翼电子科技有限公司 2014-2024
//All rights reserved
//////////////////////////////////////////////////////////////////////////////////
//音乐播放控制器
__audiodev audiodev;
//开始音频播放
void audio_start(void)
{
audiodev.status=3<<0;//开始播放+非暂停
I2S_Play_Start();
}
//关闭音频播放
void audio_stop(void)
{
audiodev.status=0;
I2S_Play_Stop();
}
//得到path路径下目标文件的总个数
//path:路径
//返回值:总有效文件数
u16 audio_get_tnum(u8 *path)
{
u8 res;
u16 rval=0;
DIR tdir; //临时目录
FILINFO tfileinfo; //临时文件信息
u8 *fn;
res=f_opendir(&tdir(const TCHAR*)path); //打开目录
tfileinfo.lfsize=_MAX_LFN*2+1; //长文件名最大长度
tfileinfo.lfname=mymalloc(SRAMINtfileinfo.lfsize); //为长文件缓存区分配内存
if(res==FR_OK&&tfileinfo.lfname!=NULL)
{
while(1)//查询总的有效文件数
{
res=f_readdir(&tdir&tfileinfo); //读取目录下的一个文件
if(res!=FR_OK||tfileinfo.fname[0]==0)break; //错误了/到末尾了退出
fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname);
res=f_typetell(fn);
if((res&0XF0)==0X40)//取高四位看看是不是音乐文件
{
rval++;//有效文件数增加1
}
}
}
myfree(SRAMINtfileinfo.lfname);
return rval;
}
//显示曲目索引
//index:当前索引
//total:总文件数
void audio_index_show(u16 indexu16 total)
{
//显示当前曲目的索引及总曲目数
// LCD_ShowxNum(30+0290index3160X80); //索引
// LCD_ShowChar(30+24290‘/‘160);
// LCD_ShowxNum(30+32290total3160X80); //总曲目
OLED_ShowNum(300index316);
OLED_ShowChar(540‘/‘161);
OLED_ShowNum(620total316);
OLED_Fill(016127161);
OLED_Refresh_Gram();
}
//显示播放时间比特率 信息
//totsec;音频文件总时间长度
//cursec:当前播放时间
//bitrate:比特率(位速)
void audio_msg_show(u32 totsecu32 cursecu32 bitrate)
{
static u16 playtime=0XFFFF;//播放时间标记
if(playtime!=cursec) //需要更新显示时间
{
playtime=cursec;
//显示播放时间
// LCD_ShowxNum(30270playtime/602160X80); //分钟
// LCD_ShowChar(30+16270‘:‘160);
// LCD_ShowxNum(30+24270playtime%602160X80); //秒钟
// LCD_ShowChar(30+40270‘/‘160);
// //显示总时间
// LCD_ShowxNum(30+48270totsec/602160X80); //分钟
// LCD_ShowChar(30+64270‘:‘160);
// LCD_ShowxNum(30+72270totsec%602160X80); //秒钟
// //显示位率
// LCD_ShowxNum(30+110270bitrate/10004160X80);//显示位率
// LCD_ShowString(30+110+322702001616“Kbps“);
OLED_ShowNum(050playtime/60212);
OLED_ShowChar(1250
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-08-23 15:21 音乐播放器\
目录 0 2015-08-23 15:21 音乐播放器\APP\
文件 6986 2015-08-16 18:08 音乐播放器\APP\audioplay.c
文件 2415 2015-08-02 17:34 音乐播放器\APP\audioplay.h
目录 0 2015-08-18 12:05 音乐播放器\AUDIOCODEC\
目录 0 2015-08-23 15:21 音乐播放器\AUDIOCODEC\ape\
目录 0 2015-08-23 15:21 音乐播放器\AUDIOCODEC\ape\apedec\
文件 8385 2014-07-16 21:18 音乐播放器\AUDIOCODEC\ape\apedec\apedecoder.c
文件 1421 2014-06-28 20:52 音乐播放器\AUDIOCODEC\ape\apedec\apedecoder.h
文件 4469 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\crc.c
文件 4079 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\demac_config.h
文件 13574 2014-06-28 21:08 音乐播放器\AUDIOCODEC\ape\apedec\entropy.c
文件 1296 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\entropy.h
文件 9043 2014-06-28 11:00 音乐播放器\AUDIOCODEC\ape\apedec\filter.c
文件 1640 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\filter.h
文件 976 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\filter_1280_15.c
文件 863 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\filter_16_11.c
文件 974 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\filter_256_13.c
文件 863 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\filter_32_10.c
文件 863 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\filter_64_11.c
文件 13804 2014-06-28 14:37 音乐播放器\AUDIOCODEC\ape\apedec\parser.c
文件 4523 2014-06-27 19:09 音乐播放器\AUDIOCODEC\ape\apedec\parser.h
文件 25685 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\predictor-arm.S
文件 9654 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\predictor.c
文件 1218 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\predictor.h
文件 388 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\SConsc
文件 3902 2014-03-11 08:23 音乐播放器\AUDIOCODEC\ape\apedec\vector_math_generic.h
文件 8188 2015-08-02 17:35 音乐播放器\AUDIOCODEC\ape\apeplay.c
文件 1448 2014-06-29 12:28 音乐播放器\AUDIOCODEC\ape\apeplay.h
目录 0 2015-08-23 15:21 音乐播放器\AUDIOCODEC\flac\
目录 0 2015-08-23 15:21 音乐播放器\AUDIOCODEC\flac\flacdec\
............此处省略420个文件信息
- 上一篇:用Qt写俄罗斯方块游戏的教程和源码
- 下一篇:文件上传与管理系统 文件上传
相关资源
- 基于STM32F4x9的LCD显示
- VS1053B编解码器的VDR分布式声音采集卡
- stm32的DAC播放音乐文件
- STM32+TMC5160代码电路图.rar
- 基于STM32的深海钻机甲板控制系统
- stm32f103.SchDoc
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- 基于STM32的嵌入式双目图像采集系统设
- 基于STM32F103C8单片机的晶联讯电子JL
- 基于STM32的温湿度检测系统实现
- stm32F4+w5300
- 14284969_《STM32单片机应用与全案例实践
-
ST-li
nk-V2的SWD仿真使用方法.docx - 安富莱STM32开发板资料
- STM32F103实现OV7670摄像头显示
- STM32F207学习板例程
- STM32F103VCT6TR - High-density performance lin
- STM32 SRAM启动的 KeiL 配置
- STM32的IAP-Bootloader程序
- STM32例程之Bootloader
- stm32f103 虚拟U盘,调试成功的
- 基于stm32F103vct6的SD卡FATFS文件系统移植
- STM32F030从机中断接收的iic代码,附带
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32+1602液晶proteus仿真.zip
- STM32循迹小车
评论
共有 条评论