资源简介
支持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写俄罗斯方块游戏的教程和源码
- 下一篇:文件上传与管理系统 文件上传
相关资源
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
评论
共有 条评论