• 大小: 1.93MB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-08-31
  • 语言: 其他
  • 标签: stm32  

资源简介

支持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\SConscript
     文件        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个文件信息

评论

共有 条评论